toolchain/toolchain-wrapper: let recent GCC handle SOURCE_DATE_EPOCH
When using precompiled headers, changing any macros defined on the command line will invalidate the precompiled header. With toolchain-wrapper adding __DATE__ and __TIME__, any commits to Buildroot will invalidate incremental builds regardless of whether the precompiled header actually uses those values (affecting _OVERRIDE_SRCDIR). GCC-7 and later support SOURCE_DATE_EPOCH and use it to define __DATE__ and __TIME__ internally, avoiding any impact on precompiled headers. Disable the custom handling in toolchain-wrapper if GCC is version 7 or newer. Signed-off-by: John Keeping <john@metanate.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
parent
8c393d2c6f
commit
408bc354a9
@ -179,6 +179,7 @@ static void check_unsafe_path(const char *arg,
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef BR_NEED_SOURCE_DATE_EPOCH
|
||||
/* Returns false if SOURCE_DATE_EPOCH was not defined in the environment.
|
||||
*
|
||||
* Returns true if SOURCE_DATE_EPOCH is in the environment and represent
|
||||
@ -232,6 +233,15 @@ bool parse_source_date_epoch_from_env(void)
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
bool parse_source_date_epoch_from_env(void)
|
||||
{
|
||||
/* The compiler is recent enough to handle SOURCE_DATE_EPOCH itself
|
||||
* so we do not need to do anything here.
|
||||
*/
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
|
@ -28,6 +28,9 @@ TOOLCHAIN_WRAPPER_OPTS += -ffile-prefix-map=$(BASE_DIR)=buildroot
|
||||
else
|
||||
TOOLCHAIN_WRAPPER_OPTS += -D__FILE__=\"\" -D__BASE_FILE__=\"\" -Wno-builtin-macro-redefined
|
||||
endif
|
||||
ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_7),)
|
||||
TOOLCHAIN_WRAPPER_OPTS += -DBR_NEED_SOURCE_DATE_EPOCH
|
||||
endif
|
||||
endif
|
||||
|
||||
# We create a list like '"-mfoo", "-mbar", "-mbarfoo"' so that each flag is a
|
||||
|
Loading…
Reference in New Issue
Block a user