Commit f6931535 authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

modpost: drop RCS/CVS $Revision handling in MODULE_VERSION()



As far as I understood, this code gets rid of '$Revision$' or '$Revision:'
of CVS, RCS or whatever in MODULE_VERSION() tags.

Remove the primeval code.

Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
parent 48a0f727
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -2066,9 +2066,6 @@ static void read_symbols(const char *modname)
		check_sec_ref(mod, modname, &info);

	version = get_modinfo(&info, "version");
	if (version)
		maybe_frob_rcs_version(modname, version, info.modinfo,
				       version - (char *)info.hdr);
	if (version || (all_versions && !is_vmlinux(modname)))
		get_src_version(modname, mod->srcversion,
				sizeof(mod->srcversion)-1);
+0 −4
Original line number Diff line number Diff line
@@ -188,10 +188,6 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
void add_moddevtable(struct buffer *buf, struct module *mod);

/* sumversion.c */
void maybe_frob_rcs_version(const char *modfilename,
			    char *version,
			    void *modinfo,
			    unsigned long modinfo_offset);
void get_src_version(const char *modname, char sum[], unsigned sumlen);

/* from modpost.c */
+0 −66
Original line number Diff line number Diff line
@@ -429,69 +429,3 @@ void get_src_version(const char *modname, char sum[], unsigned sumlen)
release:
	release_file(file, len);
}

static void write_version(const char *filename, const char *sum,
			  unsigned long offset)
{
	int fd;

	fd = open(filename, O_RDWR);
	if (fd < 0) {
		warn("changing sum in %s failed: %s\n",
			filename, strerror(errno));
		return;
	}

	if (lseek(fd, offset, SEEK_SET) == (off_t)-1) {
		warn("changing sum in %s:%lu failed: %s\n",
			filename, offset, strerror(errno));
		goto out;
	}

	if (write(fd, sum, strlen(sum)+1) != strlen(sum)+1) {
		warn("writing sum in %s failed: %s\n",
			filename, strerror(errno));
		goto out;
	}
out:
	close(fd);
}

static int strip_rcs_crap(char *version)
{
	unsigned int len, full_len;

	if (strncmp(version, "$Revision", strlen("$Revision")) != 0)
		return 0;

	/* Space for version string follows. */
	full_len = strlen(version) + strlen(version + strlen(version) + 1) + 2;

	/* Move string to start with version number: prefix will be
	 * $Revision$ or $Revision: */
	len = strlen("$Revision");
	if (version[len] == ':' || version[len] == '$')
		len++;
	while (isspace(version[len]))
		len++;
	memmove(version, version+len, full_len-len);
	full_len -= len;

	/* Preserve up to next whitespace. */
	len = 0;
	while (version[len] && !isspace(version[len]))
		len++;
	memmove(version + len, version + strlen(version),
		full_len - strlen(version));
	return 1;
}

/* Clean up RCS-style version numbers. */
void maybe_frob_rcs_version(const char *modfilename,
			    char *version,
			    void *modinfo,
			    unsigned long version_offset)
{
	if (strip_rcs_crap(version))
		write_version(modfilename, version, version_offset);
}