LOG:
mkyaffs2image.c: In function 'main':
mkyaffs2image.c:470:6: error: environment variable SOURCE_DATE_EPOCH must expand to a non-negative integer less than or equal to 253402300799
fprintf(stderr,"mkyaffs2image: image building tool for YAFFS2 built "__DAT
i cant find any environment variable SOURCE_DATE_EPOCH with LEDE
That sounds like the "compile time" variable SOURCE_DATE_EPOCH gets set wrong during the build process. That might be related to your specific build-host or git environment, or something. Are you doing a standard "make" from a normal git source repo?
Apparently yaffs needs the value of that variable for its verbose version string, and likely yaffs is compiled first of those tools that need the value, so you get the error related to yaffs.
For some reason the system apparently gets the version wrong from git dates, or something like that.
You might try overriding the detection by putting the current value to the file "version.date" that the script uses as the first option. I use that myself, if I want to set the embedded build time explicitly to something. (the file needs to be in the buildroot root, where you normally run the build commands)
date +%s > version.date
Or if you are bypassing the LEDE make system and doing some direct make for yaffs, you might try setting the environment variable directly before the make (emulating the script). Something like:
i use make V=99 and config is dafult (maybe add some language)
and today i make disclean and execute get source date epoch.sh but also show up this problem...
What is your build system? Ubuntu 16.10 or something older?
The environment variable should definitely be set automatically in the compilation process if all Makefiles, make include files & build scripts are at their default state, so that sounds really strange for a normal build.
Could you please upload the output of ./scripts/diffconfig.sh and the build log from make tools/yaffs2/{clean,compile} V=s to somewhere, e.g. pastebin and then post the links here.
Have your tried deleting .config and then just selecting one device and compiling?
Ps. Note that V=99 has been deprecated 4 years ago, although it still works for compatibility reasons. V=s is the current equivalent.
If is a command, a script "diffconfig.sh" in the "scripts" directory of your build system.
You run it exactly as "make". It will produce your a short list of the changed config items. Example below:
why i run it in scripts file cannot show anything but ./scripts/.... can....
CONFIG_TARGET_ramips=y
CONFIG_TARGET_ramips_mt7620=y
CONFIG_TARGET_ramips_mt7620_DEVICE_psg1218=y
'# CONFIG_FEED_luci is not set
'# CONFIG_FEED_packages is not set
'# CONFIG_FEED_routing is not set
'# CONFIG_FEED_telephony is not set
this is when i run make -i V=s output
i dont know why so many not set...
Hi~
when i use make -i V=s run the first time complie, next time i run make V=s it pass complie....
so weird.....
maybe when i use clean, it will show up again....