for systems that don't support latest POSIX standard: %as

https://bugs.gentoo.org/406303

--- a/configure.ac
+++ b/configure.ac
@@ -688,7 +688,6 @@ AC_ARG_ENABLE([libmount],
 UL_BUILD_INIT([libmount])
 UL_REQUIRES_LINUX([libmount])
 UL_REQUIRES_BUILD([libmount], [libblkid])
-UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
 AM_CONDITIONAL(BUILD_LIBMOUNT, test "x$build_libmount" = xyes)
 
 AC_SUBST([LIBMOUNT_VERSION])
--- a/libmount/src/tab_parse.c
+++ b/libmount/src/tab_parse.c
@@ -22,6 +22,10 @@
 #include "pathnames.h"
 #include "strutils.h"
 
+#ifndef HAVE_SCANF_MS_MODIFIER
+# define UL_SCNsA "%s"
+#endif
+
 static inline char *skip_spaces(char *s)
 {
 	assert(s);
@@ -61,16 +65,31 @@ static int mnt_parse_table_line(struct libmnt_fs *fs, char *s)
 	int rc, n = 0, xrc;
 	char *src = NULL, *fstype = NULL, *optstr = NULL;
 
+#ifndef HAVE_SCANF_MS_MODIFIER
+	size_t len = strlen(s) + 1;
+	src = malloc(len);
+	fstype = malloc(len);
+	fs->target = malloc(len);
+	optstr = malloc(len);
+#endif
+
 	rc = sscanf(s,	UL_SCNsA" "	/* (1) source */
 			UL_SCNsA" "	/* (2) target */
 			UL_SCNsA" "	/* (3) FS type */
 			UL_SCNsA" "	/* (4) options */
 			"%n",		/* byte count */
 
+#ifdef HAVE_SCANF_MS_MODIFIER
 			&src,
 			&fs->target,
 			&fstype,
 			&optstr,
+#else
+			src,
+			fs->target,
+			fstype,
+			optstr,
+#endif
 			&n);
 	xrc = rc;
 
@@ -136,6 +155,16 @@ static int mnt_parse_mountinfo_line(struct libmnt_fs *fs, char *s)
 	unsigned int maj, min;
 	char *fstype = NULL, *src = NULL, *p;
 
+#ifndef HAVE_SCANF_MS_MODIFIER
+	size_t len = strlen(s) + 1;
+	fs->root = malloc(len);
+	fs->target = malloc(len);
+	fs->vfs_optstr = malloc(len);
+	fs->fs_optstr = malloc(len);
+	fstype = malloc(len);
+	src = malloc(len);
+#endif
+
 	rc = sscanf(s,	"%u "		/* (1) id */
 			"%u "		/* (2) parent */
 			"%u:%u "	/* (3) maj:min */
@@ -147,9 +175,15 @@ static int mnt_parse_mountinfo_line(struct libmnt_fs *fs, char *s)
 			&fs->id,
 			&fs->parent,
 			&maj, &min,
+#ifdef HAVE_SCANF_MS_MODIFIER
 			&fs->root,
 			&fs->target,
 			&fs->vfs_optstr,
+#else
+			fs->root,
+			fs->target,
+			fs->vfs_optstr,
+#endif
 			&end);
 
 	if (rc >= 7 && end > 0)
@@ -167,9 +201,15 @@ static int mnt_parse_mountinfo_line(struct libmnt_fs *fs, char *s)
 			UL_SCNsA" "	/* (9) source */
 			UL_SCNsA,	/* (10) fs options (fs specific) */
 
+#ifdef HAVE_SCANF_MS_MODIFIER
 			&fstype,
 			&src,
 			&fs->fs_optstr);
+#else
+			fstype,
+			src,
+			fs->fs_optstr);
+#endif
 
 	if (rc >= 10) {
 		fs->flags |= MNT_FS_KERNEL;
