mirror of
https://github.com/versity/scoutfs.git
synced 2026-04-25 07:46:44 +00:00
scoutfs: add git describe to built module
It's handy to quickly find the git commit that built a given module. We add a MOD_INFO() tag for it so we can see it in modinfo on the built module. We add a ELF note that the kernel tracks in /sys/modules/$m/notes/ when the module is loaded. Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
@@ -12,7 +12,12 @@ else
|
||||
SP = @:
|
||||
endif
|
||||
|
||||
SCOUTFS_ARGS := CONFIG_SCOUTFS_FS=m -C $(SK_KSRC) M=$(CURDIR)/src
|
||||
SCOUTFS_GIT_DESCRIBE := \
|
||||
$(shell git describe --all --abbrev=6 --long 2>/dev/null || \
|
||||
echo not-in-a-git-repository)
|
||||
|
||||
SCOUTFS_ARGS := SCOUTFS_GIT_DESCRIBE=$(SCOUTFS_GIT_DESCRIBE) \
|
||||
CONFIG_SCOUTFS_FS=m -C $(SK_KSRC) M=$(CURDIR)/src
|
||||
|
||||
all: module
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
obj-$(CONFIG_SCOUTFS_FS) := scoutfs.o
|
||||
|
||||
CFLAGS_super.o = -DSCOUTFS_GIT_DESCRIBE=\"$(SCOUTFS_GIT_DESCRIBE)\"
|
||||
|
||||
CFLAGS_scoutfs_trace.o = -I$(src) # define_trace.h double include
|
||||
|
||||
scoutfs-y += alloc.o bio.o btree.o compact.o counters.o data.o dir.o kvec.o \
|
||||
|
||||
@@ -324,6 +324,15 @@ static int __init scoutfs_module_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
/*
|
||||
* gcc only recently learned to let __attribute__(section) add
|
||||
* SHT_NOTE notes. But the assembler always could.
|
||||
*/
|
||||
__asm__ __volatile__ (
|
||||
".section .note.git_describe,\"a\"\n"
|
||||
".string \""SCOUTFS_GIT_DESCRIBE"\\n\"\n"
|
||||
".previous\n");
|
||||
|
||||
scoutfs_init_counters();
|
||||
|
||||
scoutfs_kset = kset_create_and_add("scoutfs", NULL, fs_kobj);
|
||||
@@ -349,3 +358,4 @@ module_exit(scoutfs_module_exit)
|
||||
|
||||
MODULE_AUTHOR("Zach Brown <zab@versity.com>");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_INFO(git_describe, SCOUTFS_GIT_DESCRIBE);
|
||||
|
||||
Reference in New Issue
Block a user