Well, here's some more details, but the timestamps look okay to me. This is Red Hat Linux 7 on x64. The filesystem is XFS, which is apparently the default filesystem for this distribution.
I'm using GNU tar 1.26, and GNU make 3.82 Tar reports the timestamps in the tarball like this: $ tar tvzf chicken-4.11.0.tar.gz |grep build-version -rw-r--r-- sjamaan/sjamaan 3824 2016-05-28 07:49 chicken-4.11.0/build-version.c -rw-r--r-- sjamaan/sjamaan 2262 2016-05-28 07:48 chicken-4.11.0/build-version.scm So, the .scm file is older than the .c file, as reported by the tarball. Indeed, the timestamps of the extracted files look just like this: $ ls -l build-version.* -rw-r--r--. 1 tgphelps tgphelps 3824 May 28 07:49 build-version.c -rw-r--r--. 1 tgphelps tgphelps 2262 May 28 07:48 build-version.scm And if I ask for detailed timestamps, it still looks okay: $ ls -la --time-style=full-iso build-version* -rw-r--r--. 1 tgphelps tgphelps 3824 2016-05-28 07:49:33.000000000 -0400 build-version.c -rw-r--r--. 1 tgphelps tgphelps 2262 2016-05-28 07:48:08.000000000 -0400 build-version.scm If I use the make options to show me WHY he's rebuilding things, it says the following about build-version.c: Built for x86_64-redhat-linux-gnu Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html > This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Reading makefiles... Updating goal targets.... File `all' does not exist. File `libchicken.a' does not exist. File `build-version-static.o' does not exist. File `identify-me' does not exist. Must remake target `identify-me'. Invoking recipe from rules.make:481 to update target `identify-me'. Successfully remade target file `identify-me'. Prerequisite `identify-me' of target `buildbranch' does not exist. Must remake target `buildbranch'. Successfully remade target file `buildbranch'. Prerequisite `identify-me' of target `buildid' does not exist. Must remake target `buildid'. Successfully remade target file `buildid'. Prerequisite `identify-me' of target `buildtag.h' does not exist. Must remake target `buildtag.h'. Successfully remade target file `buildtag.h'. Prerequisite `buildid' is newer than target `build-version.c'. Prerequisite `buildtag.h' is newer than target `build-version.c'. Must remake target `build-version.c'. Invoking recipe from rules.make:561 to update target `build-version.c'. chicken build-version.scm -optimize-level 2 -include-path . -include-path ./ -inline -ignore-repository -feature chicken-bootstrap -no-warnings -specialize -types ./types.db -explicit-use -no-trace -output-file build-version.c Near the end of the above, it says: Prerequisite `buildid' is newer than target `build-version.c'. Prerequisite `buildtag.h' is newer than target `build-version.c'. And those two files are indeed newer than the target, so the problem isn't that build-version.scm is newer, I think. It is that buildid and buildtag.h are prereqs, and ARE newer: $ ls -l buildid buildtag.h -rw-r--r--. 1 tgphelps tgphelps 8 Oct 17 14:36 buildid -rw-r--r--. 1 tgphelps tgphelps 76 Oct 18 00:15 buildtag.h I don't know enough about the mechanics of building chicken to debug this any further, so I'll stop here. Your suggested workaround of touching build-version.c DOES work. I will comment that I did this exact same process on another Linux box (Ubuntu 16.04), and had no problems at all. On Mon, Oct 17, 2016 at 4:55 PM, Peter Bex <[email protected]> wrote: > On Mon, Oct 17, 2016 at 02:46:18PM -0400, Terry Phelps wrote: > > I downloaded the 4.11.0 tarball, edited config.make to set PLATFORM and > > PREFIX, and typed "make" on an ordinary RHEL 7 Linux box. > > > > It did a bunch of gcc compiles, and failed with this: > > > > chicken build-version.scm -optimize-level 2 -include-path . > -include-path > > ./ -inline -ignore-repository -feature chicken-bootstrap -no-warnings > > -specialize -types ./types.db -explicit-use -no-trace -output-file > > build-version.c > > make: chicken: Command not found > > make: *** [build-version.c] Error 127 > > Hello Terry, > > On what kind of file system did you untar? Which version of tar did > you use? > > There's a known bug on Haiku with BeFS where subsecond granularity is > not supported, causing "make" to believe that build-version.scm is newer > or has same timestamp as build-version.c, so it will try to recreate it. > > A simple workaround is to first touch build-version.c, then run make. > But I'd really like to know what's causing this in the first place. > > Cheers, > Peter >
_______________________________________________ Chicken-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/chicken-users
