[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit

Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/libc/glibc/glibc-2.22/libio/bug-mmap-fflush.c b/ap/libc/glibc/glibc-2.22/libio/bug-mmap-fflush.c
new file mode 100644
index 0000000..d8aa589
--- /dev/null
+++ b/ap/libc/glibc/glibc-2.22/libio/bug-mmap-fflush.c
@@ -0,0 +1,53 @@
+/* Test for bug in fflush synchronization behavior.  */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+static char *fname;
+
+static void prepare (void);
+#define PREPARE(argc, argv) prepare ()
+
+
+#define TEST_FUNCTION do_test ()
+static int do_test (void);
+#include "../test-skeleton.c"
+
+
+static void
+prepare (void)
+{
+  int fd = create_temp_file ("bug-mmap-fflush.", &fname);
+  if (fd == -1)
+    exit (3);
+  /* We don't need the descriptor.  */
+  close (fd);
+}
+
+
+static int
+do_test (void)
+{
+  FILE *f;
+  off_t o;
+  char buffer[1024];
+
+  snprintf (buffer, sizeof (buffer), "echo 'From foo@bar.com' > %s", fname);
+  system (buffer);
+  f = fopen (fname, "r");
+  fseek (f, 0, SEEK_END);
+  o = ftello (f);
+  fseek (f, 0, SEEK_SET);
+  fflush (f);
+  snprintf (buffer, sizeof (buffer), "echo 'From bar@baz.edu' >> %s", fname);
+  system (buffer);
+  fseek (f, o, SEEK_SET);
+  if (fgets (buffer, 1024, f) == NULL)
+    exit (1);
+  if (strncmp (buffer, "From ", 5) != 0)
+    exit (1);
+  fclose (f);
+  exit (0);
+}