Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=gnometesting.git;a=commitdiff;h=cf53b5633f9e6e68defa007512d5a24e7284ffc2

commit cf53b5633f9e6e68defa007512d5a24e7284ffc2
Author: bouleetbil <[email protected]>
Date:   Thu Oct 13 16:19:03 2011 +0200

glibc-2.14.1-2-x86_64
*added firefox patch
*remove useless patch

diff --git a/source/base/glibc/FrugalBuild b/source/base/glibc/FrugalBuild
index 1b0c7c2..2ad31f1 100644
--- a/source/base/glibc/FrugalBuild
+++ b/source/base/glibc/FrugalBuild
@@ -11,7 +11,7 @@ USE_GLIBC_PORTS=${USE_GLIBC_PORTS:-$USE_GLIBC_PORTS_DEFAULT}

pkgname=glibc
pkgver=2.14.1
-pkgrel=1
+pkgrel=2
pkgdesc="GNU C Library"
url="http://www.gnu.org/software/libc/libc.html";
depends=()
@@ -27,13 +27,15 @@ 
source=(http://ftp.gnu.org/pub/gnu/glibc/glibc-$pkgver.tar.gz \
gcc45.patch \
revert-8f4a5048eea6536ee85c0f2670adbb97d71e427d.patch \
nis.diff \
-       glibc2.14-revert-sunrpc-removal.patch)
+       glibc2.14-revert-sunrpc-removal.patch \
+       firefox.diff)
sha1sums=('d1e787f1f55eba4544e4847668cc1edb782622f7' \
'be4a7bea8af743331e2c6704faa24b6cb4e155d5' \
'2283966c4f48bbc9b6ad0ae3bbd64601c057c721' \
'c8d14d0f2e239ba0def978010163e919a45700f7' \
'9c4544aee1063f65da39273349f0780d5723747d' \
-          '9e07221a0f200898a680ed8682569606e4d3abbe')
+          '9e07221a0f200898a680ed8682569606e4d3abbe' \
+          'cc8fe170befc0a1fe56d6c18da1afc73c8c72b1b')

if Fuse GLIBC_PORTS; then
source=("${source[@]}" 
"http://ftp.frugalware.org/pub/other/people/elentir/glibc-ports/glibc-ports-$pkgver.tar.bz2";)
diff --git a/source/base/glibc/firefox.diff b/source/base/glibc/firefox.diff
new file mode 100644
index 0000000..b2b87f1
--- /dev/null
+++ b/source/base/glibc/firefox.diff
@@ -0,0 +1,159 @@
+Submitted By:            Matt Burgess <matthew_at_linuxfromscratch_dot_org>
+Date:                    2011-10-07
+Initial Package Version: 2.14.1
+Upstream Status:         From upstream
+Origin:                  Matt Burgess
+Description:             Fixes Firefox crashes and a bug when programs link to
+                         SDL.
+
+diff -Naur glibc-2.14.1.orig/elf/dl-close.c glibc-2.14.1/elf/dl-close.c
+--- glibc-2.14.1.orig/elf/dl-close.c   2011-10-07 09:48:55.000000000 +0000
++++ glibc-2.14.1/elf/dl-close.c        2011-10-07 19:43:10.346411120 +0000
+@@ -119,17 +119,8 @@
+   if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
+       || dl_close_state != not_pending)
+     {
+-      if (map->l_direct_opencount == 0)
+-      {
+-        if (map->l_type == lt_loaded)
+-          dl_close_state = rerun;
+-        else if (map->l_type == lt_library)
+-          {
+-            struct link_map **oldp = map->l_initfini;
+-            map->l_initfini = map->l_orig_initfini;
+-            _dl_scope_free (oldp);
+-          }
+-      }
++      if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
++      dl_close_state = rerun;
+
+       /* There are still references to this object.  Do nothing more.  */
+       if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
+diff -Naur glibc-2.14.1.orig/elf/dl-deps.c glibc-2.14.1/elf/dl-deps.c
+--- glibc-2.14.1.orig/elf/dl-deps.c    2011-10-07 09:48:55.000000000 +0000
++++ glibc-2.14.1/elf/dl-deps.c 2011-10-07 19:43:10.348432639 +0000
+@@ -478,6 +478,7 @@
+                 nneeded * sizeof needed[0]);
+         atomic_write_barrier ();
+         l->l_initfini = l_initfini;
++        l->l_free_initfini = 1;
+       }
+
+       /* If we have no auxiliary objects just go on to the next map.  */
+@@ -678,6 +679,7 @@
+   l_initfini[nlist] = NULL;
+   atomic_write_barrier ();
+   map->l_initfini = l_initfini;
++  map->l_free_initfini = 1;
+   if (l_reldeps != NULL)
+     {
+       atomic_write_barrier ();
+@@ -686,7 +688,7 @@
+       _dl_scope_free (old_l_reldeps);
+     }
+   if (old_l_initfini != NULL)
+-      map->l_orig_initfini = old_l_initfini;
++    _dl_scope_free (old_l_initfini);
+
+   if (errno_reason)
+     _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,
+diff -Naur glibc-2.14.1.orig/elf/dl-libc.c glibc-2.14.1/elf/dl-libc.c
+--- glibc-2.14.1.orig/elf/dl-libc.c    2011-10-07 09:48:55.000000000 +0000
++++ glibc-2.14.1/elf/dl-libc.c 2011-10-07 19:43:10.352411141 +0000
+@@ -279,6 +279,10 @@
+             if (! old->dont_free)
+               free (old);
+           }
++
++        /* Free the initfini dependency list.  */
++        if (l->l_free_initfini)
++          free (l->l_initfini);
+       }
+
+       if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
+diff -Naur glibc-2.14.1.orig/elf/rtld.c glibc-2.14.1/elf/rtld.c
+--- glibc-2.14.1.orig/elf/rtld.c       2011-10-07 09:48:55.000000000 +0000
++++ glibc-2.14.1/elf/rtld.c    2011-10-07 19:43:10.355406263 +0000
+@@ -2263,6 +2263,7 @@
+             lnp->dont_free = 1;
+             lnp = lnp->next;
+           }
++        l->l_free_initfini = 0;
+
+         if (l != &GL(dl_rtld_map))
+           _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
+diff -Naur glibc-2.14.1.orig/include/link.h glibc-2.14.1/include/link.h
+--- glibc-2.14.1.orig/include/link.h   2011-10-07 09:48:55.000000000 +0000
++++ glibc-2.14.1/include/link.h        2011-10-07 19:43:10.357462703 +0000
+@@ -192,6 +192,9 @@
+                                                during LD_TRACE_PRELINKING=1
+                                                contains any DT_SYMBOLIC
+                                                libraries.  */
++    unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
++                                     freed, ie. not allocated with
++                                     the dummy malloc in ld.so.  */
+
+     /* Collected information about own RPATH directories.  */
+     struct r_search_path_struct l_rpath_dirs;
+@@ -240,9 +243,6 @@
+
+     /* List of object in order of the init and fini calls.  */
+     struct link_map **l_initfini;
+-    /* The init and fini list generated at startup, saved when the
+-       object is also loaded dynamically.  */
+-    struct link_map **l_orig_initfini;
+
+     /* List of the dependencies introduced through symbol binding.  */
+     struct link_map_reldeps
+diff -Naur glibc-2.14.1.orig/resolv/res_query.c glibc-2.14.1/resolv/res_query.c
+--- glibc-2.14.1.orig/resolv/res_query.c       2011-10-07 09:48:55.000000000 
+0000
++++ glibc-2.14.1/resolv/res_query.c    2011-10-07 19:43:10.361412711 +0000
+@@ -122,6 +122,7 @@
+                 int *resplen2)
+ {
+       HEADER *hp = (HEADER *) answer;
++      HEADER *hp2;
+       int n, use_malloc = 0;
+       u_int oflags = statp->_flags;
+
+@@ -239,26 +240,25 @@
+         /* __libc_res_nsend might have reallocated the buffer.  */
+         hp = (HEADER *) *answerp;
+
+-      /* We simplify the following tests by assigning HP to HP2.  It
+-         is easy to verify that this is the same as ignoring all
+-         tests of HP2.  */
+-      HEADER *hp2 = answerp2 ? (HEADER *) *answerp2 : hp;
+-
+-      if (n < (int) sizeof (HEADER) && answerp2 != NULL
+-          && *resplen2 > (int) sizeof (HEADER))
++      /* We simplify the following tests by assigning HP to HP2 or
++         vice versa.  It is easy to verify that this is the same as
++         ignoring all tests of HP or HP2.  */
++      if (answerp2 == NULL || *resplen2 < (int) sizeof (HEADER))
+         {
+-          /* Special case of partial answer.  */
+-          assert (hp != hp2);
+-          hp = hp2;
++          hp2 = hp;
+         }
+-      else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER)
+-               && n > (int) sizeof (HEADER))
++      else
+         {
+-          /* Special case of partial answer.  */
+-          assert (hp != hp2);
+-          hp2 = hp;
++          hp2 = (HEADER *) *answerp2;
++          if (n < (int) sizeof (HEADER))
++            {
++              hp = hp2;
++            }
+         }
+
++      /* Make sure both hp and hp2 are defined */
++      assert((hp != NULL) && (hp2 != NULL));
++
+       if ((hp->rcode != NOERROR || ntohs(hp->ancount) == 0)
+           && (hp2->rcode != NOERROR || ntohs(hp2->ancount) == 0)) {
+ #ifdef DEBUG
diff --git a/source/base/glibc/glibc-2.14-libdl-crash.patch 
b/source/base/glibc/glibc-2.14-libdl-crash.patch
deleted file mode 100644
index ee29f8c..0000000
--- a/source/base/glibc/glibc-2.14-libdl-crash.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-diff --git a/elf/dl-close.c b/elf/dl-close.c
-index 73b2a2f..9bd91e3 100644
---- a/elf/dl-close.c
-+++ b/elf/dl-close.c
-@@ -1,5 +1,5 @@
- /* Close a shared object opened by `_dl_open'.
--   Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
-+   Copyright (C) 1996-2007, 2009, 2010 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
-   if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
-       || dl_close_state != not_pending)
-     {
--      if (map->l_direct_opencount == 0)
--      {
--        if (map->l_type == lt_loaded)
--          dl_close_state = rerun;
--        else if (map->l_type == lt_library)
--          {
--            struct link_map **oldp = map->l_initfini;
--            map->l_initfini = map->l_orig_initfini;
--            _dl_scope_free (oldp);
--          }
--      }
-+      if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
-+      dl_close_state = rerun;
-
-       /* There are still references to this object.  Do nothing more.  */
-       if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
-diff --git a/elf/dl-deps.c b/elf/dl-deps.c
-index 9e30594..3890d00 100644
---- a/elf/dl-deps.c
-+++ b/elf/dl-deps.c
-@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
-                 nneeded * sizeof needed[0]);
-         atomic_write_barrier ();
-         l->l_initfini = l_initfini;
-+        l->l_free_initfini = 1;
-       }
-
-       /* If we have no auxiliary objects just go on to the next map.  */
-@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
-   l_initfini[nlist] = NULL;
-   atomic_write_barrier ();
-   map->l_initfini = l_initfini;
-+  map->l_free_initfini = 1;
-   if (l_reldeps != NULL)
-     {
-       atomic_write_barrier ();
-@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING"));
-       _dl_scope_free (old_l_reldeps);
-     }
-   if (old_l_initfini != NULL)
--      map->l_orig_initfini = old_l_initfini;
-+    _dl_scope_free (old_l_initfini);
- }
-diff --git a/elf/dl-libc.c b/elf/dl-libc.c
-index 7be9483..a13fce3 100644
---- a/elf/dl-libc.c
-+++ b/elf/dl-libc.c
-@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem)
-
-   for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
-     {
--      /* Remove all additional names added to the objects.  */
-       for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
-       {
-         struct libname_list *lnp = l->l_libname->next;
-
-         l->l_libname->next = NULL;
-
-+        /* Remove all additional names added to the objects.  */
-         while (lnp != NULL)
-           {
-             struct libname_list *old = lnp;
-@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem)
-             if (! old->dont_free)
-               free (old);
-           }
-+
-+        /* Free the initfini dependency list.  */
-+        if (l->l_free_initfini)
-+          free (l->l_initfini);
-       }
-
-       if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
-diff --git a/elf/rtld.c b/elf/rtld.c
-index 4a9109e..617e30e 100644
---- a/elf/rtld.c
-+++ b/elf/rtld.c
-@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit 
interface: %s; ignored.\n",
-             lnp->dont_free = 1;
-             lnp = lnp->next;
-           }
-+        l->l_free_initfini = 0;
-
-         if (l != &GL(dl_rtld_map))
-           _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
-diff --git a/include/link.h b/include/link.h
-index e877104..051b99a 100644
---- a/include/link.h
-+++ b/include/link.h
-@@ -1,6 +1,6 @@
- /* Data structure for communication from the run-time dynamic linker for
-    loaded ELF shared objects.
--   Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, 
Inc.
-+   Copyright (C) 1995-2006, 2007, 2009, 2010 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -192,6 +192,9 @@ struct link_map
-                                                during LD_TRACE_PRELINKING=1
-                                                contains any DT_SYMBOLIC
-                                                libraries.  */
-+    unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
-+                                     freed, ie. not allocated with
-+                                     the dummy malloc in ld.so.  */
-
-     /* Collected information about own RPATH directories.  */
-     struct r_search_path_struct l_rpath_dirs;
-@@ -240,9 +243,6 @@ struct link_map
-
-     /* List of object in order of the init and fini calls.  */
-     struct link_map **l_initfini;
--    /* The init and fini list generated at startup, saved when the
--       object is also loaded dynamically.  */
--    struct link_map **l_orig_initfini;
-
-     /* List of the dependencies introduced through symbol binding.  */
-     struct link_map_reldeps
diff --git a/source/base/glibc/glibc-2.14-revert-4462fad3.patch 
b/source/base/glibc/glibc-2.14-revert-4462fad3.patch
deleted file mode 100644
index d71e374..0000000
--- a/source/base/glibc/glibc-2.14-revert-4462fad3.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff -Naur glibc-orig//resolv/res_send.c glibc/resolv/res_send.c
---- glibc-orig//resolv/res_send.c      2011-06-10 18:59:03.041436996 +1000
-+++ glibc/resolv/res_send.c    2011-06-10 19:08:09.379309323 +1000
-@@ -549,7 +549,7 @@
-                                   ns, ansp, ansp2, nansp2, resplen2);
-                       if (n < 0)
-                               return (-1);
--                      if (n == 0 && (buf2 == NULL || resplen2 == 0))
-+                      if (n == 0)
-                               goto next_ns;
-               } else {
-                       /* Use datagrams. */
-@@ -559,7 +559,7 @@
-                                   ansp2, nansp2, resplen2);
-                       if (n < 0)
-                               return (-1);
--                      if (n == 0 && (buf2 == NULL || resplen2 == 0))
-+                      if (n == 0)
-                               goto next_ns;
-                       if (v_circuit)
-                         // XXX Check whether both requests failed or
-@@ -1275,14 +1275,10 @@
-                               (*thisresplenp > *thisanssizp)
-                               ? *thisanssizp : *thisresplenp);
-
--                      if (recvresp1 || (buf2 != NULL && recvresp2)) {
--                        *resplen2 = 0;
-+                      if (recvresp1 || (buf2 != NULL && recvresp2))
-                         return resplen;
--                      }
-                       if (buf2 != NULL)
-                         {
--                          /* No data from the first reply.  */
--                          resplen = 0;
-                           /* We are waiting for a possible second reply.  */
-                           if (hp->id == anhp->id)
-                             recvresp1 = 1;
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to