Browse Source

[LibOS] Reduce glibc patch

Isaku Yamahata 5 years ago
parent
commit
fad4301bc0
1 changed files with 0 additions and 161 deletions
  1. 0 161
      LibOS/glibc-2.19.patch

+ 0 - 161
LibOS/glibc-2.19.patch

@@ -240,151 +240,6 @@ index 6dcbabc..c87c773 100644
    /* Now life is sane; we can call functions and access global data.
       Set up to use the operating system facilities, and find out from
       the operating system's program loader where to find the program
-@@ -1233,9 +1253,20 @@ of this helper program; chances are you did not intend to run this program.\n\
- 	    main_map->l_map_end = allocend;
- 	  if ((ph->p_flags & PF_X) && allocend > main_map->l_text_end)
- 	    main_map->l_text_end = allocend;
-+
-+#if 0
-+	  ElfW(Addr) mapend = (allocend + GLRO(dl_pagesize) - 1)
-+		               & ~(GLRO(dl_pagesize) - 1);
-+	  int prot = ((ph->p_flags & PF_R) ? PROT_READ  : 0)|
-+	             ((ph->p_flags & PF_W) ? PROT_WRITE : 0)|
-+	             ((ph->p_flags & PF_X) ? PROT_EXEC  : 0);
-+	  __mmap ((void *) mapstart, mapend - mapstart,
-+		  prot,
-+		  MAP_ANON|MAP_PRIVATE|MAP_FIXED|0x20000000,
-+		  -1, 0);
-+#endif
- 	}
- 	break;
--
-       case PT_TLS:
- 	if (ph->p_memsz > 0)
- 	  {
-@@ -1381,13 +1412,31 @@ of this helper program; chances are you did not intend to run this program.\n\
-   /* PT_GNU_RELRO is usually the last phdr.  */
-   size_t cnt = rtld_ehdr->e_phnum;
-   while (cnt-- > 0)
-+  {
-     if (rtld_phdr[cnt].p_type == PT_GNU_RELRO)
-       {
- 	GL(dl_rtld_map).l_relro_addr = rtld_phdr[cnt].p_vaddr;
- 	GL(dl_rtld_map).l_relro_size = rtld_phdr[cnt].p_memsz;
--	break;
-       }
- 
-+#if 0
-+    if (rtld_phdr[cnt].p_type == PT_LOAD)
-+      {
-+	ElfW(Addr) mapstart = rtld_phdr[cnt].p_vaddr & ~(GLRO(dl_pagesize) - 1);
-+	ElfW(Addr) mapend = (rtld_phdr[cnt].p_vaddr + rtld_phdr[cnt].p_memsz
-+		             + GLRO(dl_pagesize) - 1)
-+		             & ~(GLRO(dl_pagesize) - 1);
-+	int prot = ((rtld_phdr[cnt].p_flags & PF_R) ? PROT_READ  : 0)|
-+	           ((rtld_phdr[cnt].p_flags & PF_W) ? PROT_WRITE : 0)|
-+	           ((rtld_phdr[cnt].p_flags & PF_X) ? PROT_EXEC  : 0);
-+	__mmap ((void *) mapstart, mapend - mapstart,
-+		prot,
-+		MAP_ANON|MAP_PRIVATE|MAP_FIXED|0x20000000,
-+		-1, 0);
-+      }
-+#endif
-+  }
-+
-   /* Add the dynamic linker to the TLS list if it also uses TLS.  */
-   if (GL(dl_rtld_map).l_tls_blocksize != 0)
-     /* Assign a module ID.  Do this before loading any audit modules.  */
-@@ -1636,89 +1654,6 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
- 	}
-     }
- 
--  /* There usually is no ld.so.preload file, it should only be used
--     for emergencies and testing.  So the open call etc should usually
--     fail.  Using access() on a non-existing file is faster than using
--     open().  So we do this first.  If it succeeds we do almost twice
--     the work but this does not matter, since it is not for production
--     use.  */
--  static const char preload_file[] = "/etc/ld.so.preload";
--  if (__builtin_expect (__access (preload_file, R_OK) == 0, 0))
--    {
--      /* Read the contents of the file.  */
--      file = _dl_sysdep_read_whole_file (preload_file, &file_size,
--					 PROT_READ | PROT_WRITE);
--      if (__builtin_expect (file != MAP_FAILED, 0))
--	{
--	  /* Parse the file.  It contains names of libraries to be loaded,
--	     separated by white spaces or `:'.  It may also contain
--	     comments introduced by `#'.  */
--	  char *problem;
--	  char *runp;
--	  size_t rest;
--
--	  /* Eliminate comments.  */
--	  runp = file;
--	  rest = file_size;
--	  while (rest > 0)
--	    {
--	      char *comment = memchr (runp, '#', rest);
--	      if (comment == NULL)
--		break;
--
--	      rest -= comment - runp;
--	      do
--		*comment = ' ';
--	      while (--rest > 0 && *++comment != '\n');
--	    }
--
--	  /* We have one problematic case: if we have a name at the end of
--	     the file without a trailing terminating characters, we cannot
--	     place the \0.  Handle the case separately.  */
--	  if (file[file_size - 1] != ' ' && file[file_size - 1] != '\t'
--	      && file[file_size - 1] != '\n' && file[file_size - 1] != ':')
--	    {
--	      problem = &file[file_size];
--	      while (problem > file && problem[-1] != ' '
--		     && problem[-1] != '\t'
--		     && problem[-1] != '\n' && problem[-1] != ':')
--		--problem;
--
--	      if (problem > file)
--		problem[-1] = '\0';
--	    }
--	  else
--	    {
--	      problem = NULL;
--	      file[file_size - 1] = '\0';
--	    }
--
--	  HP_TIMING_NOW (start);
--
--	  if (file != problem)
--	    {
--	      char *p;
--	      runp = file;
--	      while ((p = strsep (&runp, ": \t\n")) != NULL)
--		if (p[0] != '\0')
--		  npreloads += do_preload (p, main_map, preload_file);
--	    }
--
--	  if (problem != NULL)
--	    {
--	      char *p = strndupa (problem, file_size - (problem - file));
--
--	      npreloads += do_preload (p, main_map, preload_file);
--	    }
--
--	  HP_TIMING_NOW (stop);
--	  HP_TIMING_DIFF (diff, start, stop);
--	  HP_TIMING_ACCUM_NT (load_time, diff);
--
--	  /* We don't need the file anymore.  */
--	  __munmap (file, file_size);
--	}
--    }
-
-  if (__builtin_expect (*first_preload != NULL, 0))
-    {
 diff --git a/malloc/arena.c b/malloc/arena.c
 index 5088a25..33a3879 100644
 --- a/malloc/arena.c
@@ -480,22 +335,6 @@ index bb11277..354149a 100644
 +    syscalldb; glibc_option;
 +  }
  }
-diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
-index 9d7f52f..72d50ae 100644
---- a/nptl/pthread_create.c
-+++ b/nptl/pthread_create.c
-@@ -405,8 +405,11 @@ start_thread (void *arg)
- # error "to do"
- #endif
-   assert (freesize < pd->stackblock_size);
-+  /* XXX: may not be necessary */
-+#if 0
-   if (freesize > PTHREAD_STACK_MIN)
-     __madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED);
-+#endif
- 
-   /* If the thread is detached free the TCB.  */
-   if (IS_DETACHED (pd))
 diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S b/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
 index 89fda5e..f6963f6 100644
 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S