OK All. Thanks for all the help.
Whether the bison (3.0.2 -> 3.7) upgrade was needed seems to be a moot point. Berny's mod to the bootstrap process (adding a step just before configure 'git clean -xdfq && ./bootstrap') got over the first error.
Akim's mod to lib/parse-datetime.y (below) cured the second error.

make-check
============================================================================
Testsuite summary for GNU coreutils 8.32.74-d889b
============================================================================
# TOTAL: 622
# PASS:  513
# SKIP:  109
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================

but then:

  CC       test-nl_langinfo-mt.o
test-nl_langinfo-mt.c: In function 'threadN_func':
test-nl_langinfo-mt.c:185:1: error: no return statement in function returning non-void [-Werror=return-type]
 }
 ^
cc1: all warnings being treated as errors
Makefile:6586: recipe for target 'test-nl_langinfo-mt.o' failed
make[5]: *** [test-nl_langinfo-mt.o] Error 1
make[5]: Leaving directory '/home/chris/Downloads/coreutils/gnulib-tests'
Makefile:9494: recipe for target 'check-am' failed
make[4]: *** [check-am] Error 2
make[4]: Leaving directory '/home/chris/Downloads/coreutils/gnulib-tests'
Makefile:6691: recipe for target 'check-recursive' failed
make[3]: *** [check-recursive] Error 1
make[3]: Leaving directory '/home/chris/Downloads/coreutils/gnulib-tests'
Makefile:9497: recipe for target 'check' failed
make[2]: *** [check] Error 2
make[2]: Leaving directory '/home/chris/Downloads/coreutils/gnulib-tests'
Makefile:12479: recipe for target 'check-recursive' failed
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory '/home/chris/Downloads/coreutils'
Makefile:12956: recipe for target 'check' failed
make: *** [check] Error 2

As I didn't really care about the tests I did sudo make install which said the version number was out-of-date ans asked for make _version.
I did that and then sudo make install again.

It all seems to have worked. --version reports 8.32.74-d889b-dirty

Thanks again
Cheers

On 21/11/2020 06:14 pm, Akim Demaille wrote:
Hi Chris,

I saw nothing suspicious about Bison in the logs you sent.

Le 21 nov. 2020 à 18:33, Chris Elvidge <celvidge...@gmail.com> a écrit :

  CC       lib/parse-datetime.o
In file included from lib/gettext.h:26:0,
                 from parse-datetime.y:71:
parse-datetime.y: In function 'parse_datetime2':
parse-datetime.y:2301:27: error: format '%lld' expects argument of type 'long 
long int', but argument 2 has type 'time_t {aka long int}' [-Werror=format=]
parse-datetime.y:2301:25: note: in expansion of macro '_'

This is the only error I spotted, and that corresponds to:

   2296             dbg_printf (_("after time adjustment (%+"PRIdMAX" hours, "
   2297                           "%+"PRIdMAX" minutes, "
   2298                           "%+"PRIdMAX" seconds, %+d ns),\n"),
   2299                         pc.rel.hour, pc.rel.minutes, pc.rel.seconds,
   2300                         pc.rel.ns);
   2301             dbg_printf (_("    new time = %"PRIdMAX" epoch-seconds\n"), 
t4);

with

         time_t t4;

so it appears we "only" have a portability issue where gnulib
believes %PRIdMAX is ok for time_t, but it is not.

The other guys (in the previous gdb_printf) are intmax_t:

/* Relative times.  */
typedef struct
{
   /* Relative year, month, day, hour, minutes, seconds, and nanoseconds.  */
   intmax_t year;
   intmax_t month;
   intmax_t day;
   intmax_t hour;
   intmax_t minutes;
   intmax_t seconds;
   int ns;
} relative_time;

I have no idea what is the best course of action to fix the error
(a cast?  A configure check to fight the right printf format?  Changing
the type of t4?), but Chris, if you just want to build, then simply
change 2301 into

dbg_printf (_("    new time = %ld epoch-seconds\n"), t4);

That should do it.

Cheers!



--

Chris Elvidge





Reply via email to