>From 298f08077b41078d5a5d9a2460bbb40f40512997 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 4 Sep 2021 09:45:06 -0700 Subject: [PATCH] idx: break copying from glibc * config/srclist.txt: Comment out idx.h, and bring back recent change. --- ChangeLog | 5 +++++ config/srclist.txt | 2 +- lib/idx.h | 20 ++++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 0c18a58eb..39a892e28 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2021-09-04 Paul Eggert + + idx: break copying from glibc + * config/srclist.txt: Comment out idx.h, and bring back recent change. + 2021-09-04 Sun Haiyong (tiny change) sigsegv: Improve cross-compilation support for LoongArch CPU. diff --git a/config/srclist.txt b/config/srclist.txt index e118ede04..da906571c 100644 --- a/config/srclist.txt +++ b/config/srclist.txt @@ -50,7 +50,7 @@ $GNUORG Copyright/request-assign.program doc/Copyright $GNUORG Copyright/request-disclaim.changes doc/Copyright $LIBCSRC include/filename.h lib -$LIBCSRC include/idx.h lib +#$LIBCSRC include/idx.h lib #$LIBCSRC malloc/dynarray-skeleton.c lib/malloc #$LIBCSRC malloc/dynarray.h lib/malloc #$LIBCSRC malloc/dynarray_at_failure.c lib/malloc diff --git a/lib/idx.h b/lib/idx.h index 483587eab..54ad5d81f 100644 --- a/lib/idx.h +++ b/lib/idx.h @@ -56,6 +56,26 @@ * Because 'size_t' is an unsigned type, and a signed type is better. See above. + Why not use 'ssize_t'? + + * 'ptrdiff_t' is more portable; it is standardized by ISO C + whereas 'ssize_t' is standardized only by POSIX. + + * 'ssize_t' is not required to be as wide as 'size_t', and some + now-obsolete POSIX platforms had 'size_t' wider than 'ssize_t'. + + * Conversely, some now-obsolete platforms had 'ptrdiff_t' wider + than 'size_t', which can be a win and conforms to POSIX. + + Won't this cause a problem with objects larger than PTRDIFF_MAX? + + * Typical modern or large platforms do not allocate such objects, + so this is not much of a problem in practice; for example, you + can safely write 'idx_t len = strlen (s);'. To port to older + small platforms where allocations larger than PTRDIFF_MAX could + in theory be a problem, you can use Gnulib's ialloc module, or + functions like ximalloc in Gnulib's xalloc module. + Why not use 'ptrdiff_t' directly? * Maintainability: When reading and modifying code, it helps to know that -- 2.30.2