summaryrefslogtreecommitdiffstats
path: root/contrib/crossrpms/patches/newlib-1.17.0-rtems4.10-20090222.diff
blob: 19324c63c17418d18476a5a58ce6ac0405e54aea (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
diff -Naur newlib-1.17.0.orig/newlib/ChangeLog.rtems newlib-1.17.0/newlib/ChangeLog.rtems
--- newlib-1.17.0.orig/newlib/ChangeLog.rtems	1970-01-01 01:00:00.000000000 +0100
+++ newlib-1.17.0/newlib/ChangeLog.rtems	2009-02-22 14:23:58.000000000 +0100
@@ -0,0 +1,35 @@
+2009-02-22	Ralf Corsépius <ralf.corsepius@rtems.org>
+
+	* newlib/libc/sys/rtems/machine/stdint.h: Add __lm32__.
+	* libc/machine/lm32/configure.in: Set AC_CONFIG_SRC to setjmp.S.
+	* libc/machine/lm32/configure: Regenerate.
+
+2009-02-20	Ralf Corsépius <ralf.corsepius@rtems.org>
+
+	* libc/unix/Makefile.in: Regenerate.
+
+2009-02-20  Craig Howland <howland@LGSInnovations.com> on behalf of
+	Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+	* libc/unix/ttyname.c:  Remove ttyname_r() (to a new file to avoid
+	coupling ttyname_r() and ttyname() due to the latter's large buffer).
+	* libc/unix/ttyname_r.c:  New file to hold ttyname_r(), previously in
+	ttyname.c.
+	* libc/unix/ttyname.h:  New file (common size definition for the 2
+	ttyname*c files that are now split).
+	* libc/unix/Makefile.am (ELIX_2_SOURCES):  Add ttyname_r.c.
+
+2009-02-16	Ralf Corsépius <ralf.corsepius@rtems.org>
+
+	* libc/sys/rtems/sys/param.h:
+	Update copyright notice from FreeBSD.
+	Remove HZ.
+	Add #include <sys/priority.h>
+	Remove priority handling (moved to sys/priority.h).
+	Remove CLBYTES (Unused, abandoned in BSD).
+
+2009-02-06	Ralf Corsépius <ralf.corsepius@rtems.org>
+
+	* libc/include/sched.h:
+	Remove (collides with RTEMS's schedul.h).
+
diff -Naur newlib-1.17.0.orig/newlib/libc/include/inttypes.h newlib-1.17.0/newlib/libc/include/inttypes.h
--- newlib-1.17.0.orig/newlib/libc/include/inttypes.h	2005-12-16 20:03:12.000000000 +0100
+++ newlib-1.17.0/newlib/libc/include/inttypes.h	2009-02-22 14:22:39.000000000 +0100
@@ -163,12 +163,12 @@
 
 
 /* 64-bit types */
-#if __have_longlong64
-#define __PRI64(x) __STRINGIFY(ll##x)
-#define __SCN64(x) __STRINGIFY(ll##x)
-#elif __have_long64
+#if __have_long64
 #define __PRI64(x) __STRINGIFY(l##x)
 #define __SCN64(x) __STRINGIFY(l##x)
+#elif __have_longlong64
+#define __PRI64(x) __STRINGIFY(ll##x)
+#define __SCN64(x) __STRINGIFY(ll##x)
 #else
 #define __PRI64(x) __STRINGIFY(x)
 #define __SCN64(x) __STRINGIFY(x)
@@ -217,12 +217,12 @@
 #endif
 
 /* max-bit types */
-#if __have_longlong64
-#define __PRIMAX(x) __STRINGIFY(ll##x)
-#define __SCNMAX(x) __STRINGIFY(ll##x)
-#elif __have_long64
+#if __have_long64
 #define __PRIMAX(x) __STRINGIFY(l##x)
 #define __SCNMAX(x) __STRINGIFY(l##x)
+#elif __have_longlong64
+#define __PRIMAX(x) __STRINGIFY(ll##x)
+#define __SCNMAX(x) __STRINGIFY(ll##x)
 #else
 #define __PRIMAX(x) __STRINGIFY(x)
 #define __SCNMAX(x) __STRINGIFY(x)
@@ -242,12 +242,12 @@
 #define SCNxMAX		__SCNMAX(x)
 
 /* ptr types */
-#if __have_longlong64
-#define __PRIPTR(x) __STRINGIFY(ll##x)
-#define __SCNPTR(x) __STRINGIFY(ll##x)
-#elif __have_long64
+#if __have_long64
 #define __PRIPTR(x) __STRINGIFY(l##x)
 #define __SCNPTR(x) __STRINGIFY(l##x)
+#elif __have_longlong64
+#define __PRIPTR(x) __STRINGIFY(ll##x)
+#define __SCNPTR(x) __STRINGIFY(ll##x)
 #else
 #define __PRIPTR(x) __STRINGIFY(x)
 #define __SCNPTR(x) __STRINGIFY(x)
diff -Naur newlib-1.17.0.orig/newlib/libc/include/machine/ieeefp.h newlib-1.17.0/newlib/libc/include/machine/ieeefp.h
--- newlib-1.17.0.orig/newlib/libc/include/machine/ieeefp.h	2008-12-11 21:05:38.000000000 +0100
+++ newlib-1.17.0/newlib/libc/include/machine/ieeefp.h	2009-02-22 14:22:39.000000000 +0100
@@ -62,8 +62,12 @@
 #  define __IEEE_BIG_ENDIAN
 # endif
 #else
-# define __IEEE_BIG_ENDIAN
 # ifdef __ARMEL__
+#  define __IEEE_LITTLE_ENDIAN
+# else
+#  define __IEEE_BIG_ENDIAN
+# endif
+# ifdef __ARMWEL__
 #  define __IEEE_BYTES_LITTLE_ENDIAN
 # endif
 #endif
diff -Naur newlib-1.17.0.orig/newlib/libc/include/machine/setjmp.h newlib-1.17.0/newlib/libc/include/machine/setjmp.h
--- newlib-1.17.0.orig/newlib/libc/include/machine/setjmp.h	2008-12-11 21:05:38.000000000 +0100
+++ newlib-1.17.0/newlib/libc/include/machine/setjmp.h	2009-02-22 14:22:39.000000000 +0100
@@ -27,7 +27,7 @@
 
 /* necv70 was 9 as well. */
 
-#ifdef __mc68000__
+#if defined(__m68k__) || defined(__mc68000__)
 /*
  * onsstack,sigmask,sp,pc,psl,d2-d7,a2-a6,
  * fp2-fp7	for 68881.
diff -Naur newlib-1.17.0.orig/newlib/libc/include/sched.h newlib-1.17.0/newlib/libc/include/sched.h
--- newlib-1.17.0.orig/newlib/libc/include/sched.h	2007-09-21 23:02:15.000000000 +0200
+++ newlib-1.17.0/newlib/libc/include/sched.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-#ifndef _SCHED_H_
-#define _SCHED_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/sched.h>
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SCHED_H_ */
diff -Naur newlib-1.17.0.orig/newlib/libc/include/stdint.h newlib-1.17.0/newlib/libc/include/stdint.h
--- newlib-1.17.0.orig/newlib/libc/include/stdint.h	2008-12-10 22:27:58.000000000 +0100
+++ newlib-1.17.0/newlib/libc/include/stdint.h	2009-02-22 14:22:39.000000000 +0100
@@ -475,6 +475,9 @@
 #define UINTMAX_C(x)	x##UL
 #endif
 
+#ifdef __rtems__
+#include <machine/stdint.h>
+#endif
 
 #ifdef __cplusplus
 }
diff -Naur newlib-1.17.0.orig/newlib/libc/include/sys/_types.h newlib-1.17.0/newlib/libc/include/sys/_types.h
--- newlib-1.17.0.orig/newlib/libc/include/sys/_types.h	2007-09-18 22:05:17.000000000 +0200
+++ newlib-1.17.0/newlib/libc/include/sys/_types.h	2009-02-22 14:22:39.000000000 +0100
@@ -84,4 +84,7 @@
 typedef void *_iconv_t;
 #endif
 
+typedef long * __intptr_t;
+typedef unsigned long* __uintptr_t;
+
 #endif	/* _SYS__TYPES_H */
diff -Naur newlib-1.17.0.orig/newlib/libc/machine/arm/machine/endian.h newlib-1.17.0/newlib/libc/machine/arm/machine/endian.h
--- newlib-1.17.0.orig/newlib/libc/machine/arm/machine/endian.h	2004-05-07 22:29:24.000000000 +0200
+++ newlib-1.17.0/newlib/libc/machine/arm/machine/endian.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-/* ARM configuration file */
-
-#ifndef _MACHINE_ENDIAN_H
-# define _MACHINE_ENDIAN_H
-
-#ifdef __ARMEB__
-#define BYTE_ORDER BIG_ENDIAN
-#else
-#define BYTE_ORDER LITTLE_ENDIAN
-#endif
-
-#endif
diff -Naur newlib-1.17.0.orig/newlib/libc/machine/lm32/configure newlib-1.17.0/newlib/libc/machine/lm32/configure
--- newlib-1.17.0.orig/newlib/libc/machine/lm32/configure	2008-12-22 20:45:44.000000000 +0100
+++ newlib-1.17.0/newlib/libc/machine/lm32/configure	2009-02-22 14:22:39.000000000 +0100
@@ -271,7 +271,7 @@
 PACKAGE_STRING='newlib 1.17.0'
 PACKAGE_BUGREPORT=''
 
-ac_unique_file="setjmp.s"
+ac_unique_file="setjmp.S"
 ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAY_SUPPLY_SYSCALLS_TRUE MAY_SUPPLY_SYSCALLS_FALSE newlib_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB READELF ac_ct_READELF MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CCAS CCASFLAGS NEWLIB_CFLAGS LDFLAGS ELIX_LEVEL_0_TRUE ELIX_LEVEL_0_FALSE ELIX_LEVEL_1_TRUE ELIX_LEVEL_1_FALSE ELIX_LEVEL_2_TRUE ELIX_LEVEL_2_FALSE ELIX_LEVEL_3_TRUE ELIX_LEVEL_3_FALSE ELIX_LEVEL_4_TRUE ELIX_LEVEL_4_FALSE USE_LIBTOOL_TRUE USE_LIBTOOL_FALSE OBJEXT oext aext lpfx libm_machine_dir machine_dir sys_dir LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
diff -Naur newlib-1.17.0.orig/newlib/libc/machine/lm32/configure.in newlib-1.17.0/newlib/libc/machine/lm32/configure.in
--- newlib-1.17.0.orig/newlib/libc/machine/lm32/configure.in	2008-12-11 21:05:38.000000000 +0100
+++ newlib-1.17.0/newlib/libc/machine/lm32/configure.in	2009-02-22 14:22:39.000000000 +0100
@@ -3,7 +3,7 @@
 
 AC_PREREQ(2.59)
 AC_INIT([newlib],[NEWLIB_VERSION])
-AC_CONFIG_SRCDIR([setjmp.s])
+AC_CONFIG_SRCDIR([setjmp.S])
 
 dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. 
 AC_CONFIG_AUX_DIR(../../../..)
diff -Naur newlib-1.17.0.orig/newlib/libc/sys/rtems/machine/stdint.h newlib-1.17.0/newlib/libc/sys/rtems/machine/stdint.h
--- newlib-1.17.0.orig/newlib/libc/sys/rtems/machine/stdint.h	1970-01-01 01:00:00.000000000 +0100
+++ newlib-1.17.0/newlib/libc/sys/rtems/machine/stdint.h	2009-02-22 14:23:16.000000000 +0100
@@ -0,0 +1,48 @@
+/*
+ *
+ */
+#ifndef _MACHINE_STDINT_H
+#define _MACHINE_STDINT_H
+
+#ifndef _STDINT_H
+#error machine/stdint.h is an internal file and must not be directly included
+#endif
+
+#ifndef __rtems__
+#error machine/stdint.h is an RTEMS specific internal file and must not be used otherwise
+#endif
+
+#if defined(__m32c__) || defined(__m32r__) || defined(__lm32__)
+#if (__SIZEOF_PTRDIFF_T__ == __SIZEOF_LONG__)
+#define __ptrint_t_long_defined 1
+#endif
+#if (__SIZEOF_PTRDIFF_T__ == __SIZEOF_INT__)
+#define __ptrint_t_int_defined 1
+#endif
+#endif
+
+#if defined(__sparc__) \
+  || defined(__powerpc__) || defined(__PPC__) \
+  || defined(__mips__) \
+  || defined(__sh__) \
+  || defined(__AVR__) \
+  || defined(_C4x) || defined(_C3x) \
+  || defined(__H8300__)
+/* PTRDIFF_TYPE = int */
+#define __ptrint_t_int_defined 1
+#endif
+
+#if defined(__i386__) \
+  || defined(__m68k__) \
+  || defined(__bfin__) \
+  || defined(__arm__) \
+  || defined(__H8300S__) || defined(__H8300H__) || defined(__H8300SX__) \
+/* PTRDIFF_TYPE = long */
+#define __ptrint_t_long_defined 1
+#endif
+
+#if !defined(__ptrint_t_int_defined) && !defined(__ptrint_t_long_defined)
+#error Failed to determine ptrint_t
+#endif
+
+#endif
diff -Naur newlib-1.17.0.orig/newlib/libc/sys/rtems/sys/param.h newlib-1.17.0/newlib/libc/sys/rtems/sys/param.h
--- newlib-1.17.0.orig/newlib/libc/sys/rtems/sys/param.h	2008-11-17 23:05:12.000000000 +0100
+++ newlib-1.17.0/newlib/libc/sys/rtems/sys/param.h	2009-02-22 14:22:39.000000000 +0100
@@ -15,10 +15,6 @@
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by the University of
- *	California, Berkeley and its contributors.
  * 4. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
@@ -47,7 +43,6 @@
 #include <sys/config.h>
 #include <machine/endian.h>
 
-# define HZ (60)
 # define PATHSIZE (1024)
 
 /* end of from newlib's <sys/param.h> */
@@ -86,13 +81,13 @@
 #define MAXHOSTNAMELEN	256		/* max hostname size */
 
 /* More types and definitions used throughout the kernel. */
-#ifdef KERNEL
+#if defined(KERNEL) || defined(_KERNEL)
 #include <sys/cdefs.h>
 #include <sys/errno.h>
 #include <sys/time.h>
 #include <sys/resource.h>
-#include <sys/ucred.h>
 #include <sys/uio.h>
+#include <sys/priority.h>
 
 #ifndef FALSE
 #define	FALSE	0
@@ -109,23 +104,6 @@
 #include <machine/param.h>
 #include <machine/limits.h>
 
-/*
- * Priorities.  Note that with 32 run queues, differences less than 4 are
- * insignificant.
- */
-#define	PSWP	0
-#define	PVM	4
-#define	PINOD	8
-#define	PRIBIO	16
-#define	PVFS	20
-#define	PZERO	22		/* No longer magic, shouldn't be here.  XXX */
-#define	PSOCK	24
-#define	PWAIT	32
-#define	PLOCK	36
-#define	PPAUSE	40
-#define	PUSER	50
-#define	MAXPRI	127		/* Priorities range from 0 through MAXPRI. */
-
 #define	PRIMASK	0x0ff
 #define	PCATCH	0x100		/* OR'd with pri for tsleep to check signals */
 
@@ -136,15 +114,6 @@
 #define	CMASK	022		/* default file mask: S_IWGRP|S_IWOTH */
 #define	NODEV	(dev_t)(-1)	/* non-existent device */
 
-/*
- * Clustering of hardware pages on machines with ridiculously small
- * page sizes is done here.  The paging subsystem deals with units of
- * CLSIZE pte's describing PAGE_SIZE (from machine/machparam.h) pages each.
- */
-#if 0
-#define	CLBYTES		(CLSIZE*PAGE_SIZE)
-#endif
-
 #define	CBLOCK	128		/* Clist block size, must be a power of 2. */
 #define CBQSIZE	(CBLOCK/NBBY)	/* Quote bytes/cblock - can do better. */
 				/* Data chars/clist. */
@@ -200,7 +169,7 @@
 #define powerof2(x)	((((x)-1)&(x))==0)
 
 /* Macros for min/max. */
-#ifndef KERNEL
+#if !(defined(KERNEL) || defined(_KERNEL))
 #define	MIN(a,b) (((a)<(b))?(a):(b))
 #define	MAX(a,b) (((a)>(b))?(a):(b))
 #endif
diff -Naur newlib-1.17.0.orig/newlib/libc/unix/Makefile.am newlib-1.17.0/newlib/libc/unix/Makefile.am
--- newlib-1.17.0.orig/newlib/libc/unix/Makefile.am	2006-05-02 00:01:07.000000000 +0200
+++ newlib-1.17.0/newlib/libc/unix/Makefile.am	2009-02-22 14:22:39.000000000 +0100
@@ -12,7 +12,8 @@
 
 ## Distinguish different EL/IX level interfaces
 ELIX_2_SOURCES = \
-	ttyname.c
+	ttyname.c \
+	ttyname_r.c
 
 ELIX_4_SOURCES = \
 	basename.c	\
diff -Naur newlib-1.17.0.orig/newlib/libc/unix/Makefile.in newlib-1.17.0/newlib/libc/unix/Makefile.in
--- newlib-1.17.0.orig/newlib/libc/unix/Makefile.in	2009-02-20 11:04:34.000000000 +0100
+++ newlib-1.17.0/newlib/libc/unix/Makefile.in	2009-02-22 14:22:39.000000000 +0100
@@ -59,7 +59,7 @@
 lib_a_LIBADD =
 am__objects_1 = lib_a-getcwd.$(OBJEXT) lib_a-pread.$(OBJEXT) \
 	lib_a-pwrite.$(OBJEXT) lib_a-sigset.$(OBJEXT)
-am__objects_2 = lib_a-ttyname.$(OBJEXT)
+am__objects_2 = lib_a-ttyname.$(OBJEXT) lib_a-ttyname_r.$(OBJEXT)
 am__objects_3 = lib_a-basename.$(OBJEXT) lib_a-dirname.$(OBJEXT) \
 	lib_a-getlogin.$(OBJEXT) lib_a-getpass.$(OBJEXT) \
 	lib_a-getpwent.$(OBJEXT) lib_a-getut.$(OBJEXT)
@@ -74,7 +74,7 @@
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libunix_la_LIBADD =
 am__objects_5 = getcwd.lo pread.lo pwrite.lo sigset.lo
-am__objects_6 = ttyname.lo
+am__objects_6 = ttyname.lo ttyname_r.lo
 am__objects_7 = basename.lo dirname.lo getlogin.lo getpass.lo \
 	getpwent.lo getut.lo
 @ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@am__objects_8 = $(am__objects_6) \
@@ -278,7 +278,8 @@
 	sigset.c
 
 ELIX_2_SOURCES = \
-	ttyname.c
+	ttyname.c \
+	ttyname_r.c
 
 ELIX_4_SOURCES = \
 	basename.c	\
@@ -402,6 +403,12 @@
 lib_a-ttyname.obj: ttyname.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-ttyname.obj `if test -f 'ttyname.c'; then $(CYGPATH_W) 'ttyname.c'; else $(CYGPATH_W) '$(srcdir)/ttyname.c'; fi`
 
+lib_a-ttyname_r.o: ttyname_r.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-ttyname_r.o `test -f 'ttyname_r.c' || echo '$(srcdir)/'`ttyname_r.c
+
+lib_a-ttyname_r.obj: ttyname_r.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-ttyname_r.obj `if test -f 'ttyname_r.c'; then $(CYGPATH_W) 'ttyname_r.c'; else $(CYGPATH_W) '$(srcdir)/ttyname_r.c'; fi`
+
 lib_a-basename.o: basename.c
 	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-basename.o `test -f 'basename.c' || echo '$(srcdir)/'`basename.c
 
diff -Naur newlib-1.17.0.orig/newlib/libc/unix/ttyname.c newlib-1.17.0/newlib/libc/unix/ttyname.c
--- newlib-1.17.0.orig/newlib/libc/unix/ttyname.c	2008-11-18 23:55:06.000000000 +0100
+++ newlib-1.17.0/newlib/libc/unix/ttyname.c	2009-02-22 14:22:39.000000000 +0100
@@ -1,94 +1,13 @@
 #ifndef _NO_TTYNAME
-/*
- * Copyright (c) 1988 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
 
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
+#include "ttyname.h"
+
 #include <dirent.h>
 #include <unistd.h>
-#include <string.h>
 #include <paths.h>
-#include <_syslist.h>
 #include <errno.h>
 
-static char ttyname_buf[sizeof (_PATH_DEV) + MAXNAMLEN] = _PATH_DEV;
-
-/*
- *  ttyname_r() - POSIX 1003.1b 4.7.2 - Determine Terminal Device Name
- */
-int
-_DEFUN( ttyname_r,(fd, name, namesize),
-	int fd _AND
-	char   *name _AND
-	size_t  namesize)
-{
-  struct stat sb;
-  struct dirent *dirp;
-  DIR *dp;
-  struct stat dsb;
-  char buf[sizeof(ttyname_buf)];
-
-  /* Must be a terminal. */
-  if (!isatty(fd))
-    return ENOTTY;
-
-  /* Must be a character device. */
-  if (fstat (fd, &sb) || !S_ISCHR (sb.st_mode))
-    return ENOTTY;
-
-  if ((dp = opendir (_PATH_DEV)) == NULL)
-    return EBADF;
-
-  strcpy(buf, _PATH_DEV);
-  while ((dirp = readdir (dp)) != NULL)
-    {
-      if (dirp->d_ino != sb.st_ino)
-	continue;
-      strcpy (buf + sizeof (_PATH_DEV) - 1, dirp->d_name);
-      if (stat (buf, &dsb) || sb.st_dev != dsb.st_dev ||
-	  sb.st_ino != dsb.st_ino)
-	continue;
-      (void) closedir (dp);
-      if(strlen(buf) < namesize)  /* < to account for terminating null */
-	{
-	strcpy(name, buf);
-	return 0;
-	}
-      else
-	{
-	return ERANGE;
-	}
-    }
-  (void) closedir (dp);
-  return EBADF;
-}
+static char ttyname_buf[TTYNAME_BUFSIZE] = _PATH_DEV;
 
 /*
  *  ttyname() - POSIX 1003.1b 4.7.2 - Determine Terminal Device Name
diff -Naur newlib-1.17.0.orig/newlib/libc/unix/ttyname.h newlib-1.17.0/newlib/libc/unix/ttyname.h
--- newlib-1.17.0.orig/newlib/libc/unix/ttyname.h	1970-01-01 01:00:00.000000000 +0100
+++ newlib-1.17.0/newlib/libc/unix/ttyname.h	2009-02-22 14:22:39.000000000 +0100
@@ -0,0 +1,6 @@
+/* Common defines for ttyname.c and ttyname_r.c */
+ 
+#include <dirent.h>	/* For MAXNAMLEN */
+#include <paths.h>	/* For _PATH_DEV */
+
+#define TTYNAME_BUFSIZE	(sizeof (_PATH_DEV) + MAXNAMLEN)
diff -Naur newlib-1.17.0.orig/newlib/libc/unix/ttyname_r.c newlib-1.17.0/newlib/libc/unix/ttyname_r.c
--- newlib-1.17.0.orig/newlib/libc/unix/ttyname_r.c	1970-01-01 01:00:00.000000000 +0100
+++ newlib-1.17.0/newlib/libc/unix/ttyname_r.c	2009-02-22 14:22:39.000000000 +0100
@@ -0,0 +1,93 @@
+#ifndef _NO_TTYNAME
+/*
+ * Copyright (c) 1988 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "ttyname.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <dirent.h>
+#include <unistd.h>
+#include <string.h>
+#include <paths.h>
+#include <_syslist.h>
+#include <errno.h>
+
+/*
+ *  ttyname_r() - POSIX 1003.1b 4.7.2 - Determine Terminal Device Name
+ */
+int
+_DEFUN( ttyname_r,(fd, name, namesize),
+	int fd _AND
+	char   *name _AND
+	size_t  namesize)
+{
+  struct stat sb;
+  struct dirent *dirp;
+  DIR *dp;
+  struct stat dsb;
+  char buf[TTYNAME_BUFSIZE];
+
+  /* Must be a terminal. */
+  if (!isatty(fd))
+    return ENOTTY;
+
+  /* Must be a character device. */
+  if (fstat (fd, &sb) || !S_ISCHR (sb.st_mode))
+    return ENOTTY;
+
+  if ((dp = opendir (_PATH_DEV)) == NULL)
+    return EBADF;
+
+  strcpy(buf, _PATH_DEV);
+  while ((dirp = readdir (dp)) != NULL)
+    {
+      if (dirp->d_ino != sb.st_ino)
+	continue;
+      strcpy (buf + sizeof (_PATH_DEV) - 1, dirp->d_name);
+      if (stat (buf, &dsb) || sb.st_dev != dsb.st_dev ||
+	  sb.st_ino != dsb.st_ino)
+	continue;
+      (void) closedir (dp);
+      if(strlen(buf) < namesize)  /* < to account for terminating null */
+	{
+	strcpy(name, buf);
+	return 0;
+	}
+      else
+	{
+	return ERANGE;
+	}
+    }
+  (void) closedir (dp);
+  return EBADF;
+}
+
+#endif /* !_NO_TTYNAME  */
diff -Naur newlib-1.17.0.orig/newlib/Makefile.am newlib-1.17.0/newlib/Makefile.am
--- newlib-1.17.0.orig/newlib/Makefile.am	2008-01-21 19:29:17.000000000 +0100
+++ newlib-1.17.0/newlib/Makefile.am	2009-02-22 14:22:39.000000000 +0100
@@ -81,7 +81,7 @@
 	libc.a
 endif
 
-noinst_DATA = stmp-targ-include
+BUILT_SOURCES = stmp-targ-include
 
 toollib_DATA = $(CRT0) $(CRT1)
 
@@ -186,9 +186,6 @@
 
 $(CRT1_DIR)$(CRT1): ; @true
 
-
-all-recursive: stmp-targ-include
-
 # The targ-include directory just holds the includes files for the
 # particular system and machine we have been configured for.  It is
 # used while building.
diff -Naur newlib-1.17.0.orig/newlib/Makefile.in newlib-1.17.0/newlib/Makefile.in
--- newlib-1.17.0.orig/newlib/Makefile.in	2009-02-20 11:04:33.000000000 +0100
+++ newlib-1.17.0/newlib/Makefile.in	2009-02-22 14:22:39.000000000 +0100
@@ -106,7 +106,7 @@
 	pdf-recursive ps-recursive uninstall-info-recursive \
 	uninstall-recursive
 toollibDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(noinst_DATA) $(toollib_DATA)
+DATA = $(toollib_DATA)
 ETAGS = etags
 CTAGS = ctags
 DEJATOOL = $(PACKAGE)
@@ -350,7 +350,7 @@
 @USE_LIBTOOL_FALSE@toollib_LIBRARIES = libm.a \
 @USE_LIBTOOL_FALSE@	libc.a
 
-noinst_DATA = stmp-targ-include
+BUILT_SOURCES = stmp-targ-include
 toollib_DATA = $(CRT0) $(CRT1)
 
 # The functions ldexp, frexp and modf are traditionally supplied in
@@ -409,7 +409,7 @@
 
 # dejagnu support
 RUNTESTFLAGS = 
-all: newlib.h
+all: $(BUILT_SOURCES) newlib.h
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 .SUFFIXES:
@@ -714,14 +714,16 @@
 	done
 check-am:
 	$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
-check: check-recursive
+check: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) check-recursive
 all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(DATA) newlib.h
 installdirs: installdirs-recursive
 installdirs-am:
 	for dir in "$(DESTDIR)$(toollibdir)" "$(DESTDIR)$(toollibdir)" "$(DESTDIR)$(toollibdir)"; do \
 	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
 	done
-install: install-recursive
+install: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) install-recursive
 install-exec: install-exec-recursive
 install-data: install-data-recursive
 uninstall: uninstall-recursive
@@ -746,6 +748,7 @@
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 clean: clean-recursive
 
 clean-am: clean-generic clean-libtool clean-toollibLIBRARIES \
@@ -864,8 +867,6 @@
 
 $(CRT1_DIR)$(CRT1): ; @true
 
-all-recursive: stmp-targ-include
-
 # The targ-include directory just holds the includes files for the
 # particular system and machine we have been configured for.  It is
 # used while building.