aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog47
-rw-r--r--elf/sprof.c5
-rw-r--r--linuxthreads/sysdeps/pthread/pthread.h54
-rw-r--r--locale/programs/ld-ctype.c6
-rw-r--r--locale/programs/ld-time.c24
-rw-r--r--locale/programs/localedef.c4
-rw-r--r--manual/getopt.texi19
-rw-r--r--nscd/connections.c4
-rw-r--r--sunrpc/svc_simple.c4
-rw-r--r--sysdeps/ieee754/ldbl-128/e_atan2l.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_roundl.c2
-rw-r--r--sysdeps/sparc/fpu/bits/mathinline.h31
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/io.h45
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/io.h20
-rw-r--r--sysdeps/unix/sysv/linux/llseek.c6
-rw-r--r--sysdeps/unix/sysv/linux/scsi/scsi.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/io.h3
-rw-r--r--time/strftime.c4
18 files changed, 183 insertions, 101 deletions
diff --git a/ChangeLog b/ChangeLog
index d04d463..eb9c9e1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,50 @@
+1999-12-29 Andreas Jaeger <aj@suse.de>
+
+ * sysdeps/unix/sysv/linux/alpha/sys/io.h: Don't include
+ <asm/io.h>; remove K&R compatibility; add missing ints.
+
+ * sysdeps/unix/sysv/linux/arm/sys/io.h: Remove K&R compatibility,
+ add missing ints.
+
+ * sysdeps/unix/sysv/linux/sys/io.h: Don't include <asm/io.h>.
+
+1999-12-29 Andreas Jaeger <aj@suse.de>
+
+ * manual/getopt.texi (Using Getopt): Document ordering of options.
+
+1999-12-29 Andreas Jaeger <aj@suse.de>
+
+ * sysdeps/unix/sysv/linux/llseek.c: Emit link time warning for llseek.
+ Requested by Michael Deutschmann <michael@talamasca.wkpowerlink.com>.
+
+1999-12-14 Andreas Jaeger <aj@suse.de>
+
+ * sysdeps/unix/sysv/linux/scsi/scsi.h: Add new defines from Linux
+ 2.3.32.
+
+1999-12-28 Jakub Jelinek <jakub@redhat.com>
+
+ * elf/sprof.c (load_shobj): Fix error message.
+ (generate_call_graph): Cast %*s length argument to int.
+ * locale/programs/localedef.c (construct_output_path): Likewise.
+ * locale/programs/ld-ctype.c (ctype_finish): Use proper format
+ specifier.
+ (ctype_class_new): Likewise.
+ * locale/programs/ld-time.c (time_finish): Likewise.
+ * sunrpc/svc_simple.c (register_rpc): Likewise.
+ * nscd/connections.c (nscd_run, start_threads): Use long instead of
+ int to avoid cast warnings.
+ * sysdeps/ieee754/ldbl-128/e_atan2l.c (__ieee754_atan2l): Kill
+ warning.
+ * sysdeps/ieee754/ldbl-128/s_roundl.c (__roundl): Remove unused
+ variable se.
+
+ * time/strftime.c (my_strftime): Provide wide era string when
+ requested.
+
+ * sysdeps/sparc/fpu/bits/mathinline.h (__signbit, __signbitl):
+ Separate into 32bit and 64bit versions.
+
1999-12-28 Ulrich Drepper <drepper@cygnus.com>
* iconvdata/Makefile (modules): Add ISO-2022-CN.
diff --git a/elf/sprof.c b/elf/sprof.c
index b4711e9..7e1d8c4 100644
--- a/elf/sprof.c
+++ b/elf/sprof.c
@@ -530,7 +530,8 @@ load_shobj (const char *name)
fd = open (map->l_name, O_RDONLY);
if (fd == -1)
/* Dooh, this really shouldn't happen. We know the file is available. */
- error (EXIT_FAILURE, errno, _("Reopening shared object `%s' failed"));
+ error (EXIT_FAILURE, errno, _("Reopening shared object `%s' failed"),
+ map->l_name);
/* Now map the section header. */
ptr = mmap (NULL, (ehdr->e_shnum * sizeof (ElfW(Shdr))
@@ -1206,7 +1207,7 @@ generate_call_graph (struct profdata *profdata)
/* Info abount the function itself. */
n = printf ("[%Zu]", cnt);
printf ("%*s%5.1f%8.2f%8.2f%9" PRIdMAX " %s [%Zd]\n",
- 7 - n, " ",
+ (int) (7 - n), " ",
total_ticks ? (100.0 * sortsym[cnt]->ticks) / total_ticks : 0,
sortsym[cnt]->ticks * tick_unit,
0.0, /* FIXME: what's time for the children, recursive */
diff --git a/linuxthreads/sysdeps/pthread/pthread.h b/linuxthreads/sysdeps/pthread/pthread.h
index 21093f9..5ce052b 100644
--- a/linuxthreads/sysdeps/pthread/pthread.h
+++ b/linuxthreads/sysdeps/pthread/pthread.h
@@ -160,7 +160,7 @@ extern int pthread_join (pthread_t __th, void **__thread_return) __THROW;
/* Indicate that the thread TH is never to be joined with PTHREAD_JOIN.
The resources of TH will therefore be freed immediately when it
terminates, instead of waiting for another thread to perform PTHREAD_JOIN
- on it. */
+ on it. */
extern int pthread_detach (pthread_t __th) __THROW;
@@ -226,7 +226,7 @@ extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
#endif
/* Set the starting address of the stack of the thread to be created.
- Depending on whether the stack grows up or doen the value must either
+ Depending on whether the stack grows up or down the value must either
be higher or lower than all the address in the memory block. The
minimal size of the block must be PTHREAD_STACK_SIZE. */
extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
@@ -246,27 +246,27 @@ extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
extern int pthread_attr_getstacksize (__const pthread_attr_t *__attr,
size_t *__stacksize) __THROW;
-/* Functions for scheduling control. */
+/* Functions for scheduling control. */
/* Set the scheduling parameters for TARGET_THREAD according to POLICY
- and *PARAM. */
+ and *PARAM. */
extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
__const struct sched_param *__param)
__THROW;
-/* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
+/* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
extern int pthread_getschedparam (pthread_t __target_thread, int *__policy,
struct sched_param *__param) __THROW;
#ifdef __USE_UNIX98
-/* Determine level of concurrency. */
+/* Determine level of concurrency. */
extern int pthread_getconcurrency (void) __THROW;
/* Set new concurrency level to LEVEL. */
extern int pthread_setconcurrency (int __level) __THROW;
#endif
-/* Functions for mutex handling. */
+/* Functions for mutex handling. */
/* Initialize MUTEX using attributes in *MUTEX_ATTR, or use the
default values if later is NULL. */
@@ -314,7 +314,7 @@ extern int __pthread_mutexattr_settype (pthread_mutexattr_t *__attr,
extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
__THROW;
-/* Return in *KIND the mutex kind attribute in *ATTR. */
+/* Return in *KIND the mutex kind attribute in *ATTR. */
extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__attr,
int *__kind) __THROW;
#endif
@@ -344,7 +344,7 @@ extern int pthread_cond_wait (pthread_cond_t *__cond,
/* Wait for condition variable COND to be signaled or broadcast until
ABSTIME. MUTEX is assumed to be locked before. ABSTIME is an
absolute time specification; zero is the beginning of the epoch
- (00:00:00 GMT, January 1, 1970). */
+ (00:00:00 GMT, January 1, 1970). */
extern int pthread_cond_timedwait (pthread_cond_t *__cond,
pthread_mutex_t *__mutex,
__const struct timespec *__abstime) __THROW;
@@ -411,14 +411,14 @@ extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
#endif
-/* Functions for handling thread-specific data */
+/* Functions for handling thread-specific data. */
-/* Create a key value identifying a location in the thread-specific data
- area. Each thread maintains a distinct thread-specific data area.
- DESTR_FUNCTION, if non-NULL, is called with
- the value associated to that key when the key is destroyed.
- DESTR_FUNCTION is not called if the value associated is NULL
- when the key is destroyed. */
+/* Create a key value identifying a location in the thread-specific
+ data area. Each thread maintains a distinct thread-specific data
+ area. DESTR_FUNCTION, if non-NULL, is called with the value
+ associated to that key when the key is destroyed.
+ DESTR_FUNCTION is not called if the value associated is NULL when
+ the key is destroyed. */
extern int __pthread_key_create (pthread_key_t *__key,
void (*__destr_function) (void *)) __THROW;
extern int pthread_key_create (pthread_key_t *__key,
@@ -438,19 +438,19 @@ extern void *__pthread_getspecific (pthread_key_t __key) __THROW;
extern void *pthread_getspecific (pthread_key_t __key) __THROW;
-/* Functions for handling initialization */
+/* Functions for handling initialization. */
/* Guarantee that the initialization function INIT_ROUTINE will be called
only once, even if pthread_once is executed several times with the
same ONCE_CONTROL argument. ONCE_CONTROL must point to a static or
- extern variable initialized to PTHREAD_ONCE_INIT. */
+ extern variable initialized to PTHREAD_ONCE_INIT. */
extern int __pthread_once (pthread_once_t *__once_control,
void (*__init_routine) (void)) __THROW;
extern int pthread_once (pthread_once_t *__once_control,
void (*__init_routine) (void)) __THROW;
-/* Functions for handling cancellation. */
+/* Functions for handling cancellation. */
/* Set cancelability state of current thread to STATE, returning old
state in *OLDSTATE if OLDSTATE is not NULL. */
@@ -465,7 +465,7 @@ extern int pthread_cancel (pthread_t __thread) __THROW;
/* Test for pending cancellation for the current thread and terminate
the thread as per pthread_exit(PTHREAD_CANCELED) if it has been
- cancelled. */
+ cancelled. */
extern void pthread_testcancel (void) __THROW;
@@ -494,7 +494,7 @@ extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
int __execute) __THROW;
/* Install a cleanup handler as pthread_cleanup_push does, but also
- saves the current cancellation type and set it to deferred cancellation. */
+ saves the current cancellation type and set it to deferred cancellation. */
#ifdef __USE_GNU
# define pthread_cleanup_push_defer_np(routine,arg) \
@@ -507,7 +507,7 @@ extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *__buffe
/* Remove a cleanup handler as pthread_cleanup_pop does, but also
restores the cancellation type that was in effect when the matching
- pthread_cleanup_push_defer was called. */
+ pthread_cleanup_push_defer was called. */
# define pthread_cleanup_pop_restore_np(execute) \
_pthread_cleanup_pop_restore (&_buffer, (execute)); }
@@ -516,11 +516,11 @@ extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *__buff
int __execute) __THROW;
#endif
-/* Functions for handling signals. */
+/* Functions for handling signals. */
#include <bits/sigthread.h>
-/* Functions for handling process creation and process execution. */
+/* Functions for handling process creation and process execution. */
/* Install handlers to be called when a new process is created with FORK.
The PREPARE handler is called in the parent process just before performing
@@ -531,7 +531,7 @@ extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *__buff
PTHREAD_ATFORK can be called several times, in which case the PREPARE
handlers are called in LIFO order (last added with PTHREAD_ATFORK,
first called before FORK), and the PARENT and CHILD handlers are called
- in FIFO (first added, first called). */
+ in FIFO (first added, first called). */
extern int __pthread_atfork (void (*__prepare) (void),
void (*__parent) (void),
@@ -541,12 +541,12 @@ extern int pthread_atfork (void (*__prepare) (void),
void (*__child) (void)) __THROW;
/* Terminate all threads in the program except the calling process.
- Should be called just before invoking one of the exec*() functions. */
+ Should be called just before invoking one of the exec*() functions. */
extern void pthread_kill_other_threads_np (void) __THROW;
-/* This function is called to initialize the pthread library. */
+/* This function is called to initialize the pthread library. */
extern void __pthread_initialize (void) __THROW;
__END_DECLS
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index 0fd4306..d68f618 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -437,7 +437,7 @@ character L'\\u%0*x' in class `%s' must not be in class `%s'"),
{
char buf[17];
- sprintf (buf, "\\%o", cnt);
+ sprintf (buf, "\\%zo", cnt);
if (!be_quiet)
error (0, 0, _("\
@@ -452,7 +452,7 @@ character '%s' in class `%s' must be in class `%s'"),
{
char buf[17];
- sprintf (buf, "\\%o", cnt);
+ sprintf (buf, "\\%zo", cnt);
if (!be_quiet)
error (0, 0, _("\
@@ -1021,7 +1021,7 @@ ctype_class_new (struct linereader *lr, struct locale_ctype_t *ctype,
if (ctype->nr_charclass == MAX_NR_CHARCLASS)
/* Exit code 2 is prescribed in P1003.2b. */
error (2, 0, _("\
-implementation limit: no more than %d character classes allowed"),
+implementation limit: no more than %zd character classes allowed"),
MAX_NR_CHARCLASS);
ctype->classnames[ctype->nr_charclass++] = name;
diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c
index e317fc1..0d51396 100644
--- a/locale/programs/ld-time.c
+++ b/locale/programs/ld-time.c
@@ -219,7 +219,7 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
if (*str != '+' && *str != '-')
{
if (!be_quiet)
- error (0, 0, _("%s: direction flag in string %d in `era' field"
+ error (0, 0, _("%s: direction flag in string %zd in `era' field"
" is not '+' nor '-'"),
"LC_TIME", idx + 1);
/* Default arbitrarily to '+'. */
@@ -230,7 +230,7 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
if (*++str != ':')
{
if (!be_quiet)
- error (0, 0, _("%s: direction flag in string %d in `era' field"
+ error (0, 0, _("%s: direction flag in string %zd in `era' field"
" is not a single character"),
"LC_TIME", idx + 1);
(void) strsep (&str, ":");
@@ -243,7 +243,7 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
if (endp == str)
{
if (!be_quiet)
- error (0, 0, _("%s: invalid number for offset in string %d in"
+ error (0, 0, _("%s: invalid number for offset in string %zd in"
" `era' field"),
"LC_TIME", idx + 1);
(void) strsep (&str, ":");
@@ -252,7 +252,7 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
{
if (!be_quiet)
error (0, 0, _("%s: garbage at end of offset value in"
- " string %d in `era' field"),
+ " string %zd in `era' field"),
"LC_TIME", idx + 1);
(void) strsep (&str, ":");
}
@@ -302,7 +302,7 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
{
invalid_start_date:
if (!be_quiet)
- error (0, 0, _("%s: invalid starting date in string %d in"
+ error (0, 0, _("%s: invalid starting date in string %zd in"
" `era' field"),
"LC_TIME", idx + 1);
(void) strsep (&str, ":");
@@ -312,7 +312,7 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
garbage_start_date:
if (!be_quiet)
error (0, 0, _("%s: garbage at end of starting date "
- "in string %d in `era' field "),
+ "in string %zd in `era' field "),
"LC_TIME", idx + 1);
(void) strsep (&str, ":");
}
@@ -331,7 +331,7 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
&& !__isleap (time->era_entries[idx].start_date[0])))
&& !be_quiet)
error (0, 0, _("%s: starting date is invalid in"
- " string %d in `era' field"),
+ " string %zd in `era' field"),
"LC_TIME", idx + 1);
}
}
@@ -379,7 +379,7 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
{
invalid_stop_date:
if (!be_quiet)
- error (0, 0, _("%s: invalid stopping date in string %d in"
+ error (0, 0, _("%s: invalid stopping date in string %zd in"
" `era' field"),
"LC_TIME", idx + 1);
(void) strsep (&str, ":");
@@ -389,7 +389,7 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
garbage_stop_date:
if (!be_quiet)
error (0, 0, _("%s: garbage at end of stopping date "
- "in string %d in `era' field"),
+ "in string %zd in `era' field"),
"LC_TIME", idx + 1);
(void) strsep (&str, ":");
}
@@ -408,7 +408,7 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
&& !__isleap (time->era_entries[idx].stop_date[0])))
&& !be_quiet)
error (0, 0, _("%s: stopping date is invalid in"
- " string %d in `era' field"),
+ " string %zd in `era' field"),
"LC_TIME", idx + 1);
}
}
@@ -416,7 +416,7 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
if (str == NULL || *str == '\0')
{
if (!be_quiet)
- error (0, 0, _("%s: missing era name in string %d in `era'"
+ error (0, 0, _("%s: missing era name in string %zd in `era'"
" field"), "LC_TIME", idx + 1);
time->era_entries[idx].name =
time->era_entries[idx].format = "";
@@ -428,7 +428,7 @@ time_finish (struct localedef_t *locale, struct charmap_t *charmap)
if (str == NULL || *str == '\0')
{
if (!be_quiet)
- error (0, 0, _("%s: missing era format in string %d"
+ error (0, 0, _("%s: missing era format in string %zd"
" in `era' field"),
"LC_TIME", idx + 1);
time->era_entries[idx].name =
diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
index fa5d3de..86b8bff 100644
--- a/locale/programs/localedef.c
+++ b/locale/programs/localedef.c
@@ -356,8 +356,8 @@ construct_output_path (char *path)
if (normal == NULL)
n = asprintf (&result, "%s/%s%c", LOCALEDIR, path, '\0');
else
- n = asprintf (&result, "%s/%.*s%s%s%c", LOCALEDIR, startp - path, path,
- normal, endp, '\0');
+ n = asprintf (&result, "%s/%.*s%s%s%c", LOCALEDIR,
+ (int) (startp - path), path, normal, endp, '\0');
endp = result + n;
}
diff --git a/manual/getopt.texi b/manual/getopt.texi
index f3934d0..aefb034 100644
--- a/manual/getopt.texi
+++ b/manual/getopt.texi
@@ -71,10 +71,29 @@ string can be followed by a colon (@samp{:}) to indicate that it takes a
required argument. If an option character is followed by two colons
(@samp{::}), its argument is optional; this is a GNU extension.
+@code{getopt} has three ways to deal with options that follow
+non-options @var{argv} elements. The special argument @samp{--} forces
+in all cases the end of option scanning.
+
+@itemize @bullet
+@item
+The default is to permute the contents of @var{argv} while scanning it
+so that eventually all the non-options are at the end. This allows
+options to be given in any order, even with programs that were not
+written to expect this.
+
+@item
If the @var{options} argument string begins with a hyphen (@samp{-}), this
is treated specially. It permits arguments that are not options to be
returned as if they were associated with option character @samp{\0}.
+@item
+POSIX demands the following behaviour: The first non-option stops option
+processing. This mode is selected by either setting the environment
+variable @code{POSIXLY_CORRECT} or beginning the @var{options} argument
+string with a plus sign (@samp{+}).
+@end itemize
+
The @code{getopt} function returns the option character for the next
command line option. When no more option arguments are available, it
returns @code{-1}. There may still be more non-option arguments; you
diff --git a/nscd/connections.c b/nscd/connections.c
index 10f49cd..c0686e8 100644
--- a/nscd/connections.c
+++ b/nscd/connections.c
@@ -382,7 +382,7 @@ static void *
__attribute__ ((__noreturn__))
nscd_run (void *p)
{
- int my_number = (int) p;
+ long my_number = (long) p;
struct pollfd conn;
int run_prune = my_number < lastdb && dbs[my_number].enabled;
time_t now = time (NULL);
@@ -496,7 +496,7 @@ nscd_run (void *p)
void
start_threads (void)
{
- int i;
+ long i;
pthread_attr_t attr;
pthread_t th;
diff --git a/sunrpc/svc_simple.c b/sunrpc/svc_simple.c
index e40bea9..949ebba 100644
--- a/sunrpc/svc_simple.c
+++ b/sunrpc/svc_simple.c
@@ -73,7 +73,7 @@ registerrpc (u_long prognum, u_long versnum, u_long procnum,
if (procnum == NULLPROC)
{
(void) fprintf (stderr,
- _("can't reassign procedure number %d\n"), NULLPROC);
+ _("can't reassign procedure number %ld\n"), NULLPROC);
return -1;
}
if (transp == 0)
@@ -89,7 +89,7 @@ registerrpc (u_long prognum, u_long versnum, u_long procnum,
if (!svc_register (transp, (u_long) prognum, (u_long) versnum,
universal, IPPROTO_UDP))
{
- (void) fprintf (stderr, _("couldn't register prog %d vers %d\n"),
+ (void) fprintf (stderr, _("couldn't register prog %ld vers %ld\n"),
prognum, versnum);
return -1;
}
diff --git a/sysdeps/ieee754/ldbl-128/e_atan2l.c b/sysdeps/ieee754/ldbl-128/e_atan2l.c
index 2e081d3..2bbb3b8 100644
--- a/sysdeps/ieee754/ldbl-128/e_atan2l.c
+++ b/sysdeps/ieee754/ldbl-128/e_atan2l.c
@@ -73,7 +73,7 @@ pi_lo = 8.67181013012378102479704402604335225e-35L; /* 3f8dcd129024e088a67cc74
if(((ix|((lx|-lx)>>63))>0x7fff000000000000LL)||
((iy|((ly|-ly)>>63))>0x7fff000000000000LL)) /* x or y is NaN */
return x+y;
- if((hx-0x3fff000000000000LL|lx)==0) return __atanl(y); /* x=1.0L */
+ if(((hx-0x3fff000000000000LL)|lx)==0) return __atanl(y); /* x=1.0L */
m = ((hy>>63)&1)|((hx>>62)&2); /* 2*sign(x)+sign(y) */
/* when y = 0 */
diff --git a/sysdeps/ieee754/ldbl-128/s_roundl.c b/sysdeps/ieee754/ldbl-128/s_roundl.c
index f9fff48..076d46c 100644
--- a/sysdeps/ieee754/ldbl-128/s_roundl.c
+++ b/sysdeps/ieee754/ldbl-128/s_roundl.c
@@ -31,7 +31,7 @@ long double
__roundl (long double x)
{
int32_t j0;
- u_int64_t se, i1, i0;
+ u_int64_t i1, i0;
GET_LDOUBLE_WORDS64 (i0, i1, x);
j0 = ((i0 >> 48) & 0x7fff) - 0x3fff;
diff --git a/sysdeps/sparc/fpu/bits/mathinline.h b/sysdeps/sparc/fpu/bits/mathinline.h
index 69591fe..2c4b282 100644
--- a/sysdeps/sparc/fpu/bits/mathinline.h
+++ b/sysdeps/sparc/fpu/bits/mathinline.h
@@ -110,6 +110,8 @@ __signbitf (float __x)
return __u.__i < 0;
}
+#if __WORDSIZE == 32
+
__MATH_INLINE int
__signbit (double __x)
{
@@ -120,18 +122,27 @@ __signbit (double __x)
__MATH_INLINE int
__signbitl (long double __x)
{
- if (sizeof(long double) == 8)
- {
- __extension__ union { long double __l; int __i[2]; } __u = { __l: __x };
- return __u.__i[0] < 0;
- }
- else
- {
- __extension__ union { long double __l; int __i[4]; } __u = { __l: __x };
- return __u.__i[0] < 0;
- }
+ return __signbit ((double)__x);
+}
+
+#else /* sparc64 */
+
+__MATH_INLINE int
+__signbit (double __x)
+{
+ __extension__ union { double __d; long __i; } __u = { __d: __x };
+ return __u.__i < 0;
+}
+
+__MATH_INLINE int
+__signbitl (long double __x)
+{
+ __extension__ union { long double __l; long __i[2]; } __u = { __l: __x };
+ return __u.__i[0] < 0;
}
+#endif /* sparc64 */
+
__MATH_INLINE double
sqrt(double __x)
{
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/io.h b/sysdeps/unix/sysv/linux/alpha/sys/io.h
index 208e793..0095714 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/io.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/io.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,9 +23,6 @@
__BEGIN_DECLS
-/* Get constants from kernel header files. */
-#include <asm/io.h>
-
/* If TURN_ON is TRUE, request for permission to do direct i/o on the
port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
permission off for that range. This call requires root privileges.
@@ -33,39 +30,39 @@ __BEGIN_DECLS
Portability note: not all Linux platforms support this call. Most
platforms based on the PC I/O architecture probably will, however.
E.g., Linux/Alpha for Alpha PCs supports this. */
-extern int ioperm __P ((unsigned long int __from, unsigned long int __num,
- int __turn_on));
+extern int ioperm (unsigned long int __from, unsigned long int __num,
+ int __turn_on) __THROW;
/* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
access any I/O port is granted. This call requires root
privileges. */
-extern int iopl __P ((int __level));
+extern int iopl (int __level) __THROW;
/* Return the physical address of the DENSE I/O memory or NULL if none
is available (e.g. on a jensen). */
-extern unsigned long _bus_base __P ((void)) __attribute__ ((const));
-extern unsigned long bus_base __P ((void)) __attribute__ ((const));
+extern unsigned long int _bus_base (void) __THROW __attribute__ ((const));
+extern unsigned long int bus_base (void) __THROW __attribute__ ((const));
/* Return the physical address of the SPARSE I/O memory. */
-extern unsigned long _bus_base_sparse __P ((void)) __attribute__ ((const));
-extern unsigned long bus_base_sparse __P ((void)) __attribute__ ((const));
+extern unsigned long _bus_base_sparse (void) __THROW __attribute__ ((const));
+extern unsigned long bus_base_sparse (void) __THROW __attribute__ ((const));
/* Return the HAE shift used by the SPARSE I/O memory. */
-extern int _hae_shift __P ((void)) __attribute__ ((const));
-extern int hae_shift __P ((void)) __attribute__ ((const));
+extern int _hae_shift (void) __THROW __attribute__ ((const));
+extern int hae_shift (void) __THROW __attribute__ ((const));
/* Access PCI space protected from machine checks. */
-extern int pciconfig_read __P ((unsigned long int __bus,
- unsigned long int __dfn,
- unsigned long int __off,
- unsigned long int __len,
- unsigned char *__buf));
-
-extern int pciconfig_write __P ((unsigned long int __bus,
- unsigned long int __dfn,
- unsigned long int __off,
- unsigned long int __len,
- unsigned char *__buf));
+extern int pciconfig_read (unsigned long int __bus,
+ unsigned long int __dfn,
+ unsigned long int __off,
+ unsigned long int __len,
+ unsigned char *__buf) __THROW;
+
+extern int pciconfig_write (unsigned long int __bus,
+ unsigned long int __dfn,
+ unsigned long int __off,
+ unsigned long int __len,
+ unsigned char *__buf) __THROW;
__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/arm/sys/io.h b/sysdeps/unix/sysv/linux/arm/sys/io.h
index 9f9eebc..96d54cd 100644
--- a/sysdeps/unix/sysv/linux/arm/sys/io.h
+++ b/sysdeps/unix/sysv/linux/arm/sys/io.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,22 +26,22 @@ __BEGIN_DECLS
/* If TURN_ON is TRUE, request for permission to do direct i/o on the
port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
permission off for that range. This call requires root privileges. */
-extern int ioperm __P ((unsigned long int __from, unsigned long int __num,
- int __turn_on));
+extern int ioperm (unsigned long int __from, unsigned long int __num,
+ int __turn_on) __THROW;
/* Set the I/O privilege level to LEVEL. If LEVEL is nonzero,
permission to access any I/O port is granted. This call requires
root privileges. */
-extern int iopl __P ((int __level));
+extern int iopl (int __level) __THROW;
/* The functions that actually perform reads and writes. */
-extern unsigned char inb (unsigned long port);
-extern unsigned short inw (unsigned long port);
-extern unsigned long inl (unsigned long port);
+extern unsigned char inb (unsigned long int port) __THROW;
+extern unsigned short int inw (unsigned long int port) __THROW;
+extern unsigned long int inl (unsigned long int port) __THROW;
-extern void outb (unsigned char value, unsigned long port);
-extern void outw (unsigned short value, unsigned long port);
-extern void outl (unsigned long value, unsigned long port);
+extern void outb (unsigned char value, unsigned long int port) __THROW;
+extern void outw (unsigned short value, unsigned long int port) __THROW;
+extern void outl (unsigned long value, unsigned long int port) __THROW;
__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/llseek.c b/sysdeps/unix/sysv/linux/llseek.c
index 67b3435..d576226 100644
--- a/sysdeps/unix/sysv/linux/llseek.c
+++ b/sysdeps/unix/sysv/linux/llseek.c
@@ -40,3 +40,9 @@ weak_alias (__llseek, llseek)
strong_alias (__llseek, __libc_lseek64)
strong_alias (__llseek, __lseek64)
weak_alias (__llseek, lseek64)
+
+/* llseek doesn't have a prototype. Since the second parameter is a
+ 64bit type, this results in wrong behaviour if no prototype is
+ provided. */
+link_warning (llseek, "\
+the `llseek' function should not be used; use `lseek64' instead.")
diff --git a/sysdeps/unix/sysv/linux/scsi/scsi.h b/sysdeps/unix/sysv/linux/scsi/scsi.h
index 92d46be..aca4bb6 100644
--- a/sysdeps/unix/sysv/linux/scsi/scsi.h
+++ b/sysdeps/unix/sysv/linux/scsi/scsi.h
@@ -85,7 +85,11 @@
#define LOG_SELECT 0x4c
#define LOG_SENSE 0x4d
#define MODE_SELECT_10 0x55
+#define RESERVE_10 0x56
+#define RELEASE_10 0x57
#define MODE_SENSE_10 0x5a
+#define PERSISTENT_RESERVE_IN 0x5e
+#define PERSISTENT_RESERVE_OUT 0x5f
#define MOVE_MEDIUM 0xa5
#define READ_12 0xa8
#define WRITE_12 0xaa
diff --git a/sysdeps/unix/sysv/linux/sys/io.h b/sysdeps/unix/sysv/linux/sys/io.h
index a15e812..c0ecca5 100644
--- a/sysdeps/unix/sysv/linux/sys/io.h
+++ b/sysdeps/unix/sysv/linux/sys/io.h
@@ -23,9 +23,6 @@
__BEGIN_DECLS
-/* Get constants from kernel header files. */
-#include <asm/io.h>
-
/* If TURN_ON is TRUE, request for permission to do direct i/o on the
port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
permission off for that range. This call requires root privileges.
diff --git a/time/strftime.c b/time/strftime.c
index d53fdfe..a2ed590 100644
--- a/time/strftime.c
+++ b/time/strftime.c
@@ -834,8 +834,8 @@ my_strftime (s, maxsize, format, tp ut_argument)
if (era)
{
# ifdef COMPILE_WIDE
- size_t len = strlen (era->era_name);
- cpy (len, era->era_name);
+ size_t len = wcslen (era->era_wname);
+ cpy (len, era->era_wname);
# else
size_t len = strlen (era->era_name);
cpy (len, era->era_name);