RE: Cannot compile m4 1.4.18 with clang 4.0

2017-07-25 Thread Thompson, KT
Thank you for the quick feedback. I have copied your comments and links to the spack issue tracker (https://github.com/LLNL/spack/issues/4883). I think we should be able to provide a work around similar to what you suggested. -kt -Original Message- From: Bruno Haible [mailto:br...@cli

Re: Cannot compile m4 1.4.18 with clang 4.0

2017-07-25 Thread Bruno Haible
> Thompson, KT wrote: > > As reported at https://github.com/LLNL/spack/issues/4883, there appears to > > be a problem compiling m4 (version 1.4.18) on Linux with LLVM clang 4.0. > > The error is: > > > > ... > > CC m4.o > > CC builtin.o > > CC debug.o > > CC eval

Re: Cannot compile m4 1.4.18 with clang 4.0

2017-07-25 Thread Eric Blake
On 07/25/2017 03:06 PM, Thompson, KT wrote: > As reported at https://github.com/LLNL/spack/issues/4883, there appears to be > a problem compiling m4 (version 1.4.18) on Linux with LLVM clang 4.0. The > error is: > > ... > CC m4.o > CC builtin.o > CC debug.o > CC

[PATCH 3/6] fts: introduce MIN_DIR_NLINK

2017-07-25 Thread Paul Eggert
* lib/fts.c (MIN_DIR_NLINK): New constant. Use it instead of 2, whenever we are talking about link counts. --- ChangeLog | 4 lib/fts.c | 19 ++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index da1fda1ad..7f532d411 100644 --- a/Chan

[PATCH 2/6] fts: nlink_t signedness fixups

2017-07-25 Thread Paul Eggert
* lib/fts.c (fts_open): Set rootparent n_dirs_remaining to -1 so that root need not be a special case later. (fts_read): Remove now-redundant test for fts_level. Do not assume that nlink_t is signed. (fts_build): Remove useless decrement of nlinks. (fts_stat): Avoid unlikely signed integer overflow

[PATCH 4/6] fts: cache dirent_inode_sort_may_be_useful too

2017-07-25 Thread Paul Eggert
* lib/fts.c (struct dev_type): New struct. (DEV_TYPE_HT_INITIAL_SIZE): New constant. (dev_type_hash, dev_type_compare, filesystem_type): New functions. (dirent_inode_sort_may_be_useful, leaf_optimization_applies): Now takes FTSENT const *, not int. All uses changed. Use filesystem_type to cache.

[PATCH 1/6] fts-tests: new module

2017-07-25 Thread Paul Eggert
* modules/fts-tests, tests/test-fts.c: New files. --- ChangeLog | 5 ++ modules/fts-tests | 13 + tests/test-fts.c | 142 ++ 3 files changed, 160 insertions(+) create mode 100644 modules/fts-tests create mode 100644 tests/test-f

[PATCH 6/6] fts: simplify fts_build

2017-07-25 Thread Paul Eggert
* lib/fts.c (fts_build): Simplify, and be lazier about calling leaf_optimization. --- ChangeLog | 4 lib/fts.c | 40 +++- 2 files changed, 19 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index cbe4c9e27..ae2b049b4 100644 --- a/ChangeL

[PATCH 5/6] fts: three levels of leaf optimization

2017-07-25 Thread Paul Eggert
* lib/fts.c (enum leaf_optimization): New type with three values. (S_MAGIC_AFS): New macro. Sort them. (leaf_optimization): Rename from leaf_optimization_applies, and return enum leaf_optimization instead of bool. All uses changed. Add cases for unknown type and for AFS. (fts_build): Don’t rely o