provide locale-gen and /etc/locale.gen mechanism to generate /usr/lib/locale-archive
provide C.utf8 as always preinstalled locale add glibc-common and integrate glibc-i18n, obsolete locales provide preprocessed locales in glibc-locales [release 2.40-3mamba;Fri Oct 11 2024]
This commit is contained in:
parent
fd5b4a5a5a
commit
a6c28131e0
@ -1,37 +0,0 @@
|
|||||||
diff -Nru glibc-2.10.1.orig/configure glibc-2.10.1/configure
|
|
||||||
--- glibc-2.10.1.orig/configure 2009-05-17 14:19:31.000000000 +0200
|
|
||||||
+++ glibc-2.10.1/configure 2009-11-03 19:44:54.000000000 +0100
|
|
||||||
@@ -4839,7 +4839,7 @@
|
|
||||||
ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
|
|
||||||
case $ac_prog_version in
|
|
||||||
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
|
||||||
- 2.1[3-9]*)
|
|
||||||
+ 2.2[0-9]*)
|
|
||||||
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
|
||||||
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
|
||||||
|
|
||||||
@@ -4902,7 +4902,7 @@
|
|
||||||
ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
|
|
||||||
case $ac_prog_version in
|
|
||||||
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
|
||||||
- 2.1[3-9]*)
|
|
||||||
+ 2.2[0-9]*)
|
|
||||||
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
|
||||||
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
|
||||||
|
|
||||||
diff -Nru glibc-2.10.1.orig/configure.in glibc-2.10.1/configure.in
|
|
||||||
--- glibc-2.10.1.orig/configure.in 2009-04-04 01:51:47.000000000 +0200
|
|
||||||
+++ glibc-2.10.1/configure.in 2009-11-03 19:44:33.000000000 +0100
|
|
||||||
@@ -897,10 +897,10 @@
|
|
||||||
# Accept binutils 2.13 or newer.
|
|
||||||
AC_CHECK_PROG_VER(AS, $AS, --version,
|
|
||||||
[GNU assembler.* \([0-9]*\.[0-9.]*\)],
|
|
||||||
- [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
|
|
||||||
+ [2.2[0-9]*], AS=: critic_missing="$critic_missing as")
|
|
||||||
AC_CHECK_PROG_VER(LD, $LD, --version,
|
|
||||||
[GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
|
|
||||||
- [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
|
|
||||||
+ [2.2[0-9]*], LD=: critic_missing="$critic_missing ld")
|
|
||||||
|
|
||||||
# We need the physical current working directory. We cannot use the
|
|
||||||
# "pwd -P" shell builtin since that's not portable. Instead we try to
|
|
@ -1,31 +0,0 @@
|
|||||||
diff -Naur glibc-2.11.1-orig/nptl/sysdeps/pthread/pt-initfini.c
|
|
||||||
glibc-2.11.1/nptl/sysdeps/pthread/pt-initfini.c
|
|
||||||
--- glibc-2.11.1-orig/nptl/sysdeps/pthread/pt-initfini.c 2009-12-08 20:10:20.000000000 +0000
|
|
||||||
+++ glibc-2.11.1/nptl/sysdeps/pthread/pt-initfini.c 2010-04-17 02:24:02.000000000 +0100
|
|
||||||
@@ -45,6 +45,11 @@
|
|
||||||
/* Embed an #include to pull in the alignment and .end directives. */
|
|
||||||
asm ("\n#include \"defs.h\"");
|
|
||||||
|
|
||||||
+asm ("\n#if defined __i686 && defined __ASSEMBLER__");
|
|
||||||
+asm ("\n#undef __i686");
|
|
||||||
+asm ("\n#define __i686 __i686");
|
|
||||||
+asm ("\n#endif");
|
|
||||||
+
|
|
||||||
/* The initial common code ends here. */
|
|
||||||
asm ("\n/*...@header_ends*/");
|
|
||||||
|
|
||||||
diff -Naur glibc-2.11.1-orig/sysdeps/unix/sysv/linux/i386/sysdep.h
|
|
||||||
glibc-2.11.1/sysdeps/unix/sysv/linux/i386/sysdep.h
|
|
||||||
--- glibc-2.11.1-orig/sysdeps/unix/sysv/linux/i386/sysdep.h 2009-12-08 20:10:20.000000000 +0000
|
|
||||||
+++ glibc-2.11.1/sysdeps/unix/sysv/linux/i386/sysdep.h 2010-04-17 02:24:02.000000000 +0100
|
|
||||||
@@ -29,6 +29,10 @@
|
|
||||||
#include <dl-sysdep.h>
|
|
||||||
#include <tls.h>
|
|
||||||
|
|
||||||
+#if defined __i686 && defined __ASSEMBLER__
|
|
||||||
+#undef __i686
|
|
||||||
+#define __i686 __i686
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/* For Linux we can use the system call table in the header file
|
|
||||||
/usr/include/asm/unistd.h
|
|
@ -1,39 +0,0 @@
|
|||||||
From 25b3aadaf646bff18d6527e03717c87bf50b3a50 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andreas Schwab <schwab@redhat.com>
|
|
||||||
Date: Tue, 28 Sep 2010 15:11:48 +0200
|
|
||||||
Subject: [PATCH] Don't try to write to _rtld_global_ro after performing relro protection
|
|
||||||
|
|
||||||
---
|
|
||||||
ChangeLog | 5 +++++
|
|
||||||
elf/rtld.c | 8 ++++----
|
|
||||||
2 files changed, 9 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/elf/rtld.c b/elf/rtld.c
|
|
||||||
index 9a560b3..201c9cf 100644
|
|
||||||
--- a/elf/rtld.c
|
|
||||||
+++ b/elf/rtld.c
|
|
||||||
@@ -2168,6 +2168,10 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
|
|
||||||
we need it in the memory handling later. */
|
|
||||||
GLRO(dl_initial_searchlist) = *GL(dl_ns)[LM_ID_BASE]._ns_main_searchlist;
|
|
||||||
|
|
||||||
+ /* Remember the last search directory added at startup, now that
|
|
||||||
+ malloc will no longer be the one from dl-minimal.c. */
|
|
||||||
+ GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
|
|
||||||
+
|
|
||||||
if (prelinked)
|
|
||||||
{
|
|
||||||
if (main_map->l_info [ADDRIDX (DT_GNU_CONFLICT)] != NULL)
|
|
||||||
@@ -2288,10 +2292,6 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
|
|
||||||
lossage);
|
|
||||||
}
|
|
||||||
|
|
||||||
- /* Remember the last search directory added at startup, now that
|
|
||||||
- malloc will no longer be the one from dl-minimal.c. */
|
|
||||||
- GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
|
|
||||||
-
|
|
||||||
if (! prelinked && rtld_multiple_ref)
|
|
||||||
{
|
|
||||||
/* There was an explicit ref to the dynamic linker as a shared lib.
|
|
||||||
--
|
|
||||||
1.7.3.4
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
|||||||
diff --git a/resolv/res_send.c b/resolv/res_send.c
|
|
||||||
index 97142b7..a001c1e 100644
|
|
||||||
--- a/resolv/res_send.c
|
|
||||||
+++ b/resolv/res_send.c
|
|
||||||
@@ -549,7 +549,7 @@ __libc_res_nsend(res_state statp, const u_char *buf, int buflen,
|
|
||||||
ns, ansp, ansp2, nansp2, resplen2);
|
|
||||||
if (n < 0)
|
|
||||||
return (-1);
|
|
||||||
- if (n == 0 && (buf2 == NULL || resplen2 == 0))
|
|
||||||
+ if (n == 0 && (buf2 == NULL || *resplen2 == 0))
|
|
||||||
goto next_ns;
|
|
||||||
} else {
|
|
||||||
/* Use datagrams. */
|
|
||||||
@@ -559,7 +559,7 @@ __libc_res_nsend(res_state statp, const u_char *buf, int buflen,
|
|
||||||
ansp2, nansp2, resplen2);
|
|
||||||
if (n < 0)
|
|
||||||
return (-1);
|
|
||||||
- if (n == 0 && (buf2 == NULL || resplen2 == 0))
|
|
||||||
+ if (n == 0 && (buf2 == NULL || *resplen2 == 0))
|
|
||||||
goto next_ns;
|
|
||||||
if (v_circuit)
|
|
||||||
// XXX Check whether both requests failed or
|
|
@ -1,56 +0,0 @@
|
|||||||
--- glibc-2.14/nis/Makefile
|
|
||||||
+++ glibc-2.14-2/nis/Makefile
|
|
||||||
@@ -23,9 +23,9 @@ subdir := nis
|
|
||||||
|
|
||||||
aux := nis_hash
|
|
||||||
|
|
||||||
+headers := $(wildcard rpcsvc/*.[hx])
|
|
||||||
distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \
|
|
||||||
- nisplus-parser.h nis_xdr.h nss \
|
|
||||||
- $(wildcard rpcsvc/*.[hx])
|
|
||||||
+ nisplus-parser.h nis_xdr.h nss
|
|
||||||
|
|
||||||
# These are the databases available for the nis (and perhaps later nisplus)
|
|
||||||
# service. This must be a superset of the services in nss.
|
|
||||||
@@ -69,6 +69,8 @@ libnss_nisplus-inhibit-o = $(filter-out .os,$(object-suffixes))
|
|
||||||
|
|
||||||
include ../Rules
|
|
||||||
|
|
||||||
+CFLAGS-nis_findserv.c += -fno-strict-aliasing
|
|
||||||
+CFLAGS-ypclnt.c += -fno-strict-aliasing
|
|
||||||
|
|
||||||
$(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version)
|
|
||||||
$(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \
|
|
||||||
--- glibc-2.14/sunrpc/Makefile
|
|
||||||
+++ glibc-2.14-2/sunrpc/Makefile
|
|
||||||
@@ -53,7 +53,7 @@ headers-in-tirpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \
|
|
||||||
des_crypt.h)
|
|
||||||
headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \
|
|
||||||
$(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
|
|
||||||
-headers = rpc/netdb.h
|
|
||||||
+headers = rpc/netdb.h $(headers-in-tirpc) $(headers-not-in-tirpc)
|
|
||||||
install-others = $(inst_sysconfdir)/rpc
|
|
||||||
generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
|
|
||||||
$(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
|
|
||||||
@@ -152,6 +152,10 @@ CFLAGS-openchild.c = -fexceptions
|
|
||||||
|
|
||||||
CPPFLAGS += -D_RPC_THREAD_SAFE_
|
|
||||||
|
|
||||||
+CFLAGS-clnt_tcp.c += -fno-strict-aliasing
|
|
||||||
+CFLAGS-clnt_udp.c += -fno-strict-aliasing
|
|
||||||
+CFLAGS-clnt_unix.c += -fno-strict-aliasing
|
|
||||||
+
|
|
||||||
$(objpfx)tst-getmyaddr: $(common-objpfx)linkobj/libc.so
|
|
||||||
$(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so
|
|
||||||
$(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so
|
|
||||||
--- a/include/libc-symbols.h
|
|
||||||
+++ b/include/libc-symbols.h
|
|
||||||
@@ -635,7 +635,7 @@ for linking")
|
|
||||||
# define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
|
|
||||||
# define libc_hidden_def(name) hidden_def (name)
|
|
||||||
# define libc_hidden_weak(name) hidden_weak (name)
|
|
||||||
-# define libc_hidden_nolink(name, version) hidden_nolink (name, libc, version)
|
|
||||||
+# define libc_hidden_nolink(name, version) hidden_def (name)
|
|
||||||
# define libc_hidden_ver(local, name) hidden_ver (local, name)
|
|
||||||
# define libc_hidden_data_def(name) hidden_data_def (name)
|
|
||||||
# define libc_hidden_data_weak(name) hidden_data_weak (name)
|
|
@ -1,118 +0,0 @@
|
|||||||
On Monday, June 06, 2011 13:00:50 Mike Frysinger wrote:
|
|
||||||
> On Monday, June 06, 2011 04:51:29 Andreas Schwab wrote:
|
|
||||||
> > Paweł Sikora <pluto@agmk.net> writes:
|
|
||||||
> > > git bisect shows first bad commit:
|
|
||||||
> > >
|
|
||||||
> > > 4bff6e0175ed195871f4e01cc4c4c33274b8f6e3 is the first bad commit
|
|
||||||
> > > commit 4bff6e0175ed195871f4e01cc4c4c33274b8f6e3
|
|
||||||
> > > Author: Andreas Schwab <schwab@redhat.com>
|
|
||||||
> > > Date: Fri Feb 25 20:49:48 2011 -0500
|
|
||||||
> > >
|
|
||||||
> > > Fix memory leak in dlopen with RTLD_NOLOAD.
|
|
||||||
> >
|
|
||||||
> > See <http://sourceware.org/ml/libc-hacker/2010-09/msg00009.html> and
|
|
||||||
> > <http://sourceware.org/ml/libc-hacker/2011-02/msg00004.html> for the
|
|
||||||
> > original, working patches.
|
|
||||||
>
|
|
||||||
> thanks, i'm seeing basically the same crash with the mpd server (music
|
|
||||||
> daemon)
|
|
||||||
|
|
||||||
in case it's helpful to someone else, this is the patch i'm using
|
|
||||||
-mike
|
|
||||||
|
|
||||||
partially revert 4bff6e0175ed195871f4e01cc4c4c33274b8f6e3
|
|
||||||
|
|
||||||
http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html
|
|
||||||
|
|
||||||
--- a/elf/dl-libc.c
|
|
||||||
+++ b/elf/dl-libc.c
|
|
||||||
@@ -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
|
|
||||||
--- a/elf/rtld.c
|
|
||||||
+++ b/elf/rtld.c
|
|
||||||
@@ -2240,6 +2240,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,
|
|
||||||
--- a/elf/dl-close.c
|
|
||||||
+++ b/elf/dl-close.c
|
|
||||||
@@ -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))
|
|
||||||
--- 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. */
|
|
||||||
@@ -662,6 +663,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 ();diff --git a/include/link.h b/include/link.h
|
|
||||||
@@ -686,5 +686,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);
|
|
||||||
|
|
||||||
--- a/include/link.h
|
|
||||||
+++ b/include/link.h
|
|
||||||
@@ -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 +240,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
|
|
@ -1,11 +0,0 @@
|
|||||||
--- glibc-2.16.0.orig/manual/texinfo.tex 2012-06-30 21:12:34.000000000 +0200
|
|
||||||
+++ glibc-2.16.0/manual/texinfo.tex 2012-07-02 01:11:41.500955548 +0200
|
|
||||||
@@ -1107,7 +1107,7 @@
|
|
||||||
% #1 is a control sequence in which to do the replacements,
|
|
||||||
% which we \xdef.
|
|
||||||
\def\txiescapepdf#1{%
|
|
||||||
- \ifx\pdfescapestring\relax
|
|
||||||
+ \ifx\pdfescapestring\thisisundefined
|
|
||||||
% No primitive available; should we give a warning or log?
|
|
||||||
% Many times it won't matter.
|
|
||||||
\else
|
|
@ -1,66 +0,0 @@
|
|||||||
--- glibc-2.25/resolv/compat-gethnamaddr.c.orig 2017-07-23 16:16:44.843366630 +0200
|
|
||||||
+++ glibc-2.25/resolv/compat-gethnamaddr.c 2017-07-23 16:17:41.948589454 +0200
|
|
||||||
@@ -441,7 +441,6 @@
|
|
||||||
}
|
|
||||||
return (res_gethostbyname2(name, AF_INET));
|
|
||||||
}
|
|
||||||
-compat_symbol (libresolv, res_gethostbyname, res_gethostbyname, GLIBC_2_0);
|
|
||||||
|
|
||||||
struct hostent *
|
|
||||||
res_gethostbyname2 (const char *name, int af)
|
|
||||||
@@ -573,7 +572,6 @@
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
libresolv_hidden_def (res_gethostbyname2)
|
|
||||||
-compat_symbol (libresolv, res_gethostbyname2, res_gethostbyname2, GLIBC_2_0);
|
|
||||||
|
|
||||||
struct hostent *
|
|
||||||
res_gethostbyaddr (const void *addr, socklen_t len, int af)
|
|
||||||
@@ -673,7 +671,6 @@
|
|
||||||
__set_h_errno (NETDB_SUCCESS);
|
|
||||||
return (hp);
|
|
||||||
}
|
|
||||||
-compat_symbol (libresolv, res_gethostbyaddr, res_gethostbyaddr, GLIBC_2_0);
|
|
||||||
|
|
||||||
void
|
|
||||||
_sethtent (int f)
|
|
||||||
@@ -685,7 +682,6 @@
|
|
||||||
stayopen = f;
|
|
||||||
}
|
|
||||||
libresolv_hidden_def (_sethtent)
|
|
||||||
-compat_symbol (libresolv, _sethtent, _sethtent, GLIBC_2_0);
|
|
||||||
|
|
||||||
static void
|
|
||||||
_endhtent (void)
|
|
||||||
@@ -761,7 +757,6 @@
|
|
||||||
return (&host);
|
|
||||||
}
|
|
||||||
libresolv_hidden_def (_gethtent)
|
|
||||||
-compat_symbol (libresolv, _gethtent, _gethtent, GLIBC_2_0);
|
|
||||||
|
|
||||||
struct hostent *
|
|
||||||
_gethtbyname (const char *name)
|
|
||||||
@@ -775,7 +770,6 @@
|
|
||||||
}
|
|
||||||
return (_gethtbyname2(name, AF_INET));
|
|
||||||
}
|
|
||||||
-compat_symbol (libresolv, _gethtbyname, _gethtbyname, GLIBC_2_0);
|
|
||||||
|
|
||||||
struct hostent *
|
|
||||||
_gethtbyname2 (const char *name, int af)
|
|
||||||
@@ -798,7 +792,6 @@
|
|
||||||
return (p);
|
|
||||||
}
|
|
||||||
libresolv_hidden_def (_gethtbyname2)
|
|
||||||
-compat_symbol (libresolv, _gethtbyname2, _gethtbyname2, GLIBC_2_0);
|
|
||||||
|
|
||||||
struct hostent *
|
|
||||||
_gethtbyaddr (const char *addr, size_t len, int af)
|
|
||||||
@@ -813,7 +806,6 @@
|
|
||||||
return (p);
|
|
||||||
}
|
|
||||||
libresolv_hidden_def (_gethtbyaddr)
|
|
||||||
-compat_symbol (libresolv, _gethtbyaddr, _gethtbyaddr, GLIBC_2_0);
|
|
||||||
|
|
||||||
static void
|
|
||||||
map_v4v6_address (const char *src, char *dst)
|
|
@ -1,38 +0,0 @@
|
|||||||
diff -Nru glibc-2.4.orig/manual/arith.texi glibc-2.4/manual/arith.texi
|
|
||||||
--- glibc-2.4.orig/manual/arith.texi 2004-10-06 05:02:14.000000000 +0200
|
|
||||||
+++ glibc-2.4/manual/arith.texi 2006-06-09 13:14:46.000000000 +0200
|
|
||||||
@@ -778,8 +778,7 @@
|
|
||||||
|
|
||||||
@comment fenv.h
|
|
||||||
@comment ISO
|
|
||||||
-@deftypefun int fesetexceptflag (const fexcept_t *@var{flagp}, int
|
|
||||||
-@var{excepts})
|
|
||||||
+@deftypefun int fesetexceptflag (const fexcept_t *@var{flagp}, int@var{excepts})
|
|
||||||
This function restores the flags for the exceptions indicated by
|
|
||||||
@var{excepts} to the values stored in the variable pointed to by
|
|
||||||
@var{flagp}.
|
|
||||||
diff -Nru glibc-2.4.orig/manual/errno.texi glibc-2.4/manual/errno.texi
|
|
||||||
--- glibc-2.4.orig/manual/errno.texi 2005-12-24 21:21:03.000000000 +0100
|
|
||||||
+++ glibc-2.4/manual/errno.texi 2006-06-09 13:14:46.000000000 +0200
|
|
||||||
@@ -1494,7 +1494,7 @@
|
|
||||||
|
|
||||||
@comment error.h
|
|
||||||
@comment GNU
|
|
||||||
-@deftypevar {void (*} error_print_progname ) (void)
|
|
||||||
+@deftypevar {void *} error_print_progname (void)
|
|
||||||
If the @code{error_print_progname} variable is defined to a non-zero
|
|
||||||
value the function pointed to is called by @code{error} or
|
|
||||||
@code{error_at_line}. It is expected to print the program name or do
|
|
||||||
diff -Nru glibc-2.4.orig/manual/sysinfo.texi glibc-2.4/manual/sysinfo.texi
|
|
||||||
--- glibc-2.4.orig/manual/sysinfo.texi 2003-11-29 07:38:43.000000000 +0100
|
|
||||||
+++ glibc-2.4/manual/sysinfo.texi 2006-06-09 13:14:46.000000000 +0200
|
|
||||||
@@ -1066,8 +1066,7 @@
|
|
||||||
|
|
||||||
@comment sysctl.h
|
|
||||||
@comment BSD
|
|
||||||
-@deftypefun int sysctl (int *@var{names}, int @var{nlen}, void *@var{oldval},
|
|
||||||
- size_t *@var{oldlenp}, void *@var{newval}, size_t @var{newlen})
|
|
||||||
+@deftypefun int sysctl (int *@var{names}, int @var{nlen}, void *@var{oldval},size_t *@var{oldlenp}, void *@var{newval}, size_t @var{newlen})
|
|
||||||
|
|
||||||
@code{sysctl} gets or sets a specified system parameter. There are so
|
|
||||||
many of these parameters that it is not practical to list them all here,
|
|
@ -1,361 +0,0 @@
|
|||||||
Submitted By: Robert Connolly <robert at linuxfromscratch dot org> (ashes)
|
|
||||||
Date: 2007-10-07
|
|
||||||
Initial Package Version: 2.6.1
|
|
||||||
Upstream Status: Rejected Upstream
|
|
||||||
http://sources.redhat.com/ml/libc-alpha/2000-08/msg00052.html
|
|
||||||
Origin: OpenBSD, then see the url above, the ported to Owl/Openwall.
|
|
||||||
http://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/glibc/\
|
|
||||||
glibc-2.3.5-openbsd-strlcpy-strlcat.diff
|
|
||||||
Then I retrieved the latest copies of strlcat.c and strlcpy.c from OpenBSD-cvs,
|
|
||||||
which had trivial changes.
|
|
||||||
Description: http://www.courtesan.com/todd/papers/strlcpy.html
|
|
||||||
|
|
||||||
diff -Naur glibc-2.6.1.orig/manual/strlcpy.3 glibc-2.6.1/manual/strlcpy.3
|
|
||||||
--- glibc-2.6.1.orig/manual/strlcpy.3 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ glibc-2.6.1/manual/strlcpy.3 2007-08-04 06:48:03.000000000 +0000
|
|
||||||
@@ -0,0 +1,186 @@
|
|
||||||
+.\" $OpenBSD: strlcpy.3,v 1.18 2005/08/06 03:24:19 jaredy Exp $
|
|
||||||
+.\"
|
|
||||||
+.\" Copyright (c) 1998, 2000 Todd C. Miller <Todd.Miller@courtesan.com>
|
|
||||||
+.\"
|
|
||||||
+.\" Permission to use, copy, modify, and distribute this software for any
|
|
||||||
+.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
+.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
+.\"
|
|
||||||
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
+.\"
|
|
||||||
+.Dd June 22, 1998
|
|
||||||
+.Dt STRLCPY 3
|
|
||||||
+.Os
|
|
||||||
+.Sh NAME
|
|
||||||
+.Nm strlcpy ,
|
|
||||||
+.Nm strlcat
|
|
||||||
+.Nd size-bounded string copying and concatenation
|
|
||||||
+.Sh SYNOPSIS
|
|
||||||
+.Fd #include <string.h>
|
|
||||||
+.Ft size_t
|
|
||||||
+.Fn strlcpy "char *dst" "const char *src" "size_t size"
|
|
||||||
+.Ft size_t
|
|
||||||
+.Fn strlcat "char *dst" "const char *src" "size_t size"
|
|
||||||
+.Sh DESCRIPTION
|
|
||||||
+The
|
|
||||||
+.Fn strlcpy
|
|
||||||
+and
|
|
||||||
+.Fn strlcat
|
|
||||||
+functions copy and concatenate strings respectively.
|
|
||||||
+They are designed
|
|
||||||
+to be safer, more consistent, and less error prone replacements for
|
|
||||||
+.Xr strncpy 3
|
|
||||||
+and
|
|
||||||
+.Xr strncat 3 .
|
|
||||||
+Unlike those functions,
|
|
||||||
+.Fn strlcpy
|
|
||||||
+and
|
|
||||||
+.Fn strlcat
|
|
||||||
+take the full size of the buffer (not just the length) and guarantee to
|
|
||||||
+NUL-terminate the result (as long as
|
|
||||||
+.Fa size
|
|
||||||
+is larger than 0 or, in the case of
|
|
||||||
+.Fn strlcat ,
|
|
||||||
+as long as there is at least one byte free in
|
|
||||||
+.Fa dst ) .
|
|
||||||
+Note that a byte for the NUL should be included in
|
|
||||||
+.Fa size .
|
|
||||||
+Also note that
|
|
||||||
+.Fn strlcpy
|
|
||||||
+and
|
|
||||||
+.Fn strlcat
|
|
||||||
+only operate on true
|
|
||||||
+.Dq C
|
|
||||||
+strings.
|
|
||||||
+This means that for
|
|
||||||
+.Fn strlcpy
|
|
||||||
+.Fa src
|
|
||||||
+must be NUL-terminated and for
|
|
||||||
+.Fn strlcat
|
|
||||||
+both
|
|
||||||
+.Fa src
|
|
||||||
+and
|
|
||||||
+.Fa dst
|
|
||||||
+must be NUL-terminated.
|
|
||||||
+.Pp
|
|
||||||
+The
|
|
||||||
+.Fn strlcpy
|
|
||||||
+function copies up to
|
|
||||||
+.Fa size
|
|
||||||
+- 1 characters from the NUL-terminated string
|
|
||||||
+.Fa src
|
|
||||||
+to
|
|
||||||
+.Fa dst ,
|
|
||||||
+NUL-terminating the result.
|
|
||||||
+.Pp
|
|
||||||
+The
|
|
||||||
+.Fn strlcat
|
|
||||||
+function appends the NUL-terminated string
|
|
||||||
+.Fa src
|
|
||||||
+to the end of
|
|
||||||
+.Fa dst .
|
|
||||||
+It will append at most
|
|
||||||
+.Fa size
|
|
||||||
+- strlen(dst) - 1 bytes, NUL-terminating the result.
|
|
||||||
+.Sh RETURN VALUES
|
|
||||||
+The
|
|
||||||
+.Fn strlcpy
|
|
||||||
+and
|
|
||||||
+.Fn strlcat
|
|
||||||
+functions return the total length of the string they tried to create.
|
|
||||||
+For
|
|
||||||
+.Fn strlcpy
|
|
||||||
+that means the length of
|
|
||||||
+.Fa src .
|
|
||||||
+For
|
|
||||||
+.Fn strlcat
|
|
||||||
+that means the initial length of
|
|
||||||
+.Fa dst
|
|
||||||
+plus
|
|
||||||
+the length of
|
|
||||||
+.Fa src .
|
|
||||||
+While this may seem somewhat confusing, it was done to make
|
|
||||||
+truncation detection simple.
|
|
||||||
+.Pp
|
|
||||||
+Note, however, that if
|
|
||||||
+.Fn strlcat
|
|
||||||
+traverses
|
|
||||||
+.Fa size
|
|
||||||
+characters without finding a NUL, the length of the string is considered
|
|
||||||
+to be
|
|
||||||
+.Fa size
|
|
||||||
+and the destination string will not be NUL-terminated (since there was
|
|
||||||
+no space for the NUL).
|
|
||||||
+This keeps
|
|
||||||
+.Fn strlcat
|
|
||||||
+from running off the end of a string.
|
|
||||||
+In practice this should not happen (as it means that either
|
|
||||||
+.Fa size
|
|
||||||
+is incorrect or that
|
|
||||||
+.Fa dst
|
|
||||||
+is not a proper
|
|
||||||
+.Dq C
|
|
||||||
+string).
|
|
||||||
+The check exists to prevent potential security problems in incorrect code.
|
|
||||||
+.Sh EXAMPLES
|
|
||||||
+The following code fragment illustrates the simple case:
|
|
||||||
+.Bd -literal -offset indent
|
|
||||||
+char *s, *p, buf[BUFSIZ];
|
|
||||||
+
|
|
||||||
+\&...
|
|
||||||
+
|
|
||||||
+(void)strlcpy(buf, s, sizeof(buf));
|
|
||||||
+(void)strlcat(buf, p, sizeof(buf));
|
|
||||||
+.Ed
|
|
||||||
+.Pp
|
|
||||||
+To detect truncation, perhaps while building a pathname, something
|
|
||||||
+like the following might be used:
|
|
||||||
+.Bd -literal -offset indent
|
|
||||||
+char *dir, *file, pname[MAXPATHLEN];
|
|
||||||
+
|
|
||||||
+\&...
|
|
||||||
+
|
|
||||||
+if (strlcpy(pname, dir, sizeof(pname)) >= sizeof(pname))
|
|
||||||
+ goto toolong;
|
|
||||||
+if (strlcat(pname, file, sizeof(pname)) >= sizeof(pname))
|
|
||||||
+ goto toolong;
|
|
||||||
+.Ed
|
|
||||||
+.Pp
|
|
||||||
+Since it is known how many characters were copied the first time, things
|
|
||||||
+can be sped up a bit by using a copy instead of an append:
|
|
||||||
+.Bd -literal -offset indent
|
|
||||||
+char *dir, *file, pname[MAXPATHLEN];
|
|
||||||
+size_t n;
|
|
||||||
+
|
|
||||||
+\&...
|
|
||||||
+
|
|
||||||
+n = strlcpy(pname, dir, sizeof(pname));
|
|
||||||
+if (n >= sizeof(pname))
|
|
||||||
+ goto toolong;
|
|
||||||
+if (strlcpy(pname + n, file, sizeof(pname) - n) >= sizeof(pname) - n)
|
|
||||||
+ goto toolong;
|
|
||||||
+.Ed
|
|
||||||
+.Pp
|
|
||||||
+However, one may question the validity of such optimizations, as they
|
|
||||||
+defeat the whole purpose of
|
|
||||||
+.Fn strlcpy
|
|
||||||
+and
|
|
||||||
+.Fn strlcat .
|
|
||||||
+As a matter of fact, the first version of this manual page got it wrong.
|
|
||||||
+.Sh SEE ALSO
|
|
||||||
+.Xr snprintf 3 ,
|
|
||||||
+.Xr strncat 3 ,
|
|
||||||
+.Xr strncpy 3
|
|
||||||
+.Sh HISTORY
|
|
||||||
+The
|
|
||||||
+.Fn strlcpy
|
|
||||||
+and
|
|
||||||
+.Fn strlcat
|
|
||||||
+functions first appeared in
|
|
||||||
+.Ox 2.4 .
|
|
||||||
diff -Naur glibc-2.6.1.orig/string/Makefile glibc-2.6.1/string/Makefile
|
|
||||||
--- glibc-2.6.1.orig/string/Makefile 2007-02-01 16:10:11.000000000 +0000
|
|
||||||
+++ glibc-2.6.1/string/Makefile 2007-08-04 06:48:35.000000000 +0000
|
|
||||||
@@ -40,7 +40,12 @@
|
|
||||||
addsep replace) \
|
|
||||||
envz basename \
|
|
||||||
strcoll_l strxfrm_l string-inlines memrchr \
|
|
||||||
- xpg-strerror strerror_l
|
|
||||||
+ xpg-strerror strerror_l strlcat strlcpy
|
|
||||||
+
|
|
||||||
+# These routines will be omitted from the libc shared object.
|
|
||||||
+# Instead the static object files will be included in a special archive
|
|
||||||
+# linked against when the shared library will be used.
|
|
||||||
+static-only-routines = strlcat strlcpy
|
|
||||||
|
|
||||||
# Gcc internally generates calls to unbounded memcpy and memset
|
|
||||||
# for -fbounded-pointer compiles. Glibc uses memchr for explicit checks.
|
|
||||||
diff -Naur glibc-2.6.1.orig/string/string.h glibc-2.6.1/string/string.h
|
|
||||||
--- glibc-2.6.1.orig/string/string.h 2007-02-01 16:08:52.000000000 +0000
|
|
||||||
+++ glibc-2.6.1/string/string.h 2007-08-04 06:48:03.000000000 +0000
|
|
||||||
@@ -354,6 +354,24 @@
|
|
||||||
extern char *strsep (char **__restrict __stringp,
|
|
||||||
__const char *__restrict __delim)
|
|
||||||
__THROW __nonnull ((1, 2));
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * Appends __src to string __dst of size __n (unlike strncat, __n is the
|
|
||||||
+ * full size of __dst, not space left). At most __n-1 characters
|
|
||||||
+ * will be copied. Always NUL terminates (unless __n <= strlen(__dst)).
|
|
||||||
+ * Returns strlen(__src) + MIN(__n, strlen(initial __dst)).
|
|
||||||
+ * If retval >= __n, truncation occurred.
|
|
||||||
+ */
|
|
||||||
+extern size_t strlcat (char *__dst, __const char *__src, size_t __n)
|
|
||||||
+ __THROW __nonnull ((1, 2));
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * Copy __src to string __dst of size __n. At most __n-1 characters
|
|
||||||
+ * will be copied. Always NUL terminates (unless __n == 0).
|
|
||||||
+ * Returns strlen(__src); if retval >= __n, truncation occurred.
|
|
||||||
+ */
|
|
||||||
+extern size_t strlcpy (char *__dst, __const char *__src, size_t __n)
|
|
||||||
+ __THROW __nonnull ((1, 2));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __USE_GNU
|
|
||||||
diff -Naur glibc-2.6.1.orig/string/strlcat.c glibc-2.6.1/string/strlcat.c
|
|
||||||
--- glibc-2.6.1.orig/string/strlcat.c 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ glibc-2.6.1/string/strlcat.c 2007-08-04 06:48:03.000000000 +0000
|
|
||||||
@@ -0,0 +1,55 @@
|
|
||||||
+/* $OpenBSD: strlcat.c,v 1.13 2005/08/08 08:05:37 espie Exp $ */
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
|
|
||||||
+ *
|
|
||||||
+ * Permission to use, copy, modify, and distribute this software for any
|
|
||||||
+ * purpose with or without fee is hereby granted, provided that the above
|
|
||||||
+ * copyright notice and this permission notice appear in all copies.
|
|
||||||
+ *
|
|
||||||
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include <sys/types.h>
|
|
||||||
+#include <string.h>
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * Appends src to string dst of size siz (unlike strncat, siz is the
|
|
||||||
+ * full size of dst, not space left). At most siz-1 characters
|
|
||||||
+ * will be copied. Always NUL terminates (unless siz <= strlen(dst)).
|
|
||||||
+ * Returns strlen(src) + MIN(siz, strlen(initial dst)).
|
|
||||||
+ * If retval >= siz, truncation occurred.
|
|
||||||
+ */
|
|
||||||
+size_t
|
|
||||||
+strlcat(char *dst, const char *src, size_t siz)
|
|
||||||
+{
|
|
||||||
+ char *d = dst;
|
|
||||||
+ const char *s = src;
|
|
||||||
+ size_t n = siz;
|
|
||||||
+ size_t dlen;
|
|
||||||
+
|
|
||||||
+ /* Find the end of dst and adjust bytes left but don't go past end */
|
|
||||||
+ while (n-- != 0 && *d != '\0')
|
|
||||||
+ d++;
|
|
||||||
+ dlen = d - dst;
|
|
||||||
+ n = siz - dlen;
|
|
||||||
+
|
|
||||||
+ if (n == 0)
|
|
||||||
+ return(dlen + strlen(s));
|
|
||||||
+ while (*s != '\0') {
|
|
||||||
+ if (n != 1) {
|
|
||||||
+ *d++ = *s;
|
|
||||||
+ n--;
|
|
||||||
+ }
|
|
||||||
+ s++;
|
|
||||||
+ }
|
|
||||||
+ *d = '\0';
|
|
||||||
+
|
|
||||||
+ return(dlen + (s - src)); /* count does not include NUL */
|
|
||||||
+}
|
|
||||||
diff -Naur glibc-2.6.1.orig/string/strlcpy.c glibc-2.6.1/string/strlcpy.c
|
|
||||||
--- glibc-2.6.1.orig/string/strlcpy.c 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ glibc-2.6.1/string/strlcpy.c 2007-08-04 06:48:03.000000000 +0000
|
|
||||||
@@ -0,0 +1,51 @@
|
|
||||||
+/* $OpenBSD: strlcpy.c,v 1.11 2006/05/05 15:27:38 millert Exp $ */
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
|
|
||||||
+ *
|
|
||||||
+ * Permission to use, copy, modify, and distribute this software for any
|
|
||||||
+ * purpose with or without fee is hereby granted, provided that the above
|
|
||||||
+ * copyright notice and this permission notice appear in all copies.
|
|
||||||
+ *
|
|
||||||
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include <sys/types.h>
|
|
||||||
+#include <string.h>
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * Copy src to string dst of size siz. At most siz-1 characters
|
|
||||||
+ * will be copied. Always NUL terminates (unless siz == 0).
|
|
||||||
+ * Returns strlen(src); if retval >= siz, truncation occurred.
|
|
||||||
+ */
|
|
||||||
+size_t
|
|
||||||
+strlcpy(char *dst, const char *src, size_t siz)
|
|
||||||
+{
|
|
||||||
+ char *d = dst;
|
|
||||||
+ const char *s = src;
|
|
||||||
+ size_t n = siz;
|
|
||||||
+
|
|
||||||
+ /* Copy as many bytes as will fit */
|
|
||||||
+ if (n != 0) {
|
|
||||||
+ while (--n != 0) {
|
|
||||||
+ if ((*d++ = *s++) == '\0')
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Not enough room in dst, add NUL and traverse rest of src */
|
|
||||||
+ if (n == 0) {
|
|
||||||
+ if (siz != 0)
|
|
||||||
+ *d = '\0'; /* NUL-terminate dst */
|
|
||||||
+ while (*s++)
|
|
||||||
+ ;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return(s - src - 1); /* count does not include NUL */
|
|
||||||
+}
|
|
@ -1,29 +0,0 @@
|
|||||||
Submitted By: Tushar Teredesai <tushar@linuxfromscratch.org>
|
|
||||||
Date: 2008-04-18
|
|
||||||
Initial Package Version: 2.7
|
|
||||||
Upstream Status: Fixed
|
|
||||||
Origin: glibc cvs
|
|
||||||
Description: Fix compilation with gcc-4.3
|
|
||||||
|
|
||||||
===================================================================
|
|
||||||
RCS file: /cvs/glibc/libc/configure,v
|
|
||||||
retrieving revision 1.462
|
|
||||||
retrieving revision 1.463
|
|
||||||
diff -u -r1.462 -r1.463
|
|
||||||
--- libc/configure 2008/01/24 20:21:23 1.462
|
|
||||||
+++ libc/configure 2008/02/01 00:20:07 1.463
|
|
||||||
@@ -5065,8 +5065,12 @@
|
|
||||||
# header directory and add that to the list. NOTE: Only does the right
|
|
||||||
# thing on a system that doesn't need fixincludes. (Not presently a problem.)
|
|
||||||
if test -n "$sysheaders"; then
|
|
||||||
- ccheaders=`$CC -print-file-name=include`
|
|
||||||
- SYSINCLUDES="-nostdinc -isystem $ccheaders \
|
|
||||||
+ SYSINCLUDES=-nostdinc
|
|
||||||
+ for d in include include-fixed; do
|
|
||||||
+ i=`$CC -print-file-name="$d"` && test "x$i" != "x$d" &&
|
|
||||||
+ SYSINCLUDES="$SYSINCLUDES -isystem $i"
|
|
||||||
+ done
|
|
||||||
+ SYSINCLUDES="$SYSINCLUDES \
|
|
||||||
-isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
|
|
||||||
if test -n "$CXX"; then
|
|
||||||
cxxversion=`$CXX -dumpversion 2>&5` &&
|
|
@ -1,26 +0,0 @@
|
|||||||
2007-11-01 Ryan S. Arnold <rsa@us.ibm.com>
|
|
||||||
|
|
||||||
* nptl/sysdeps/unix/sysv/linux/lowlevellock.c
|
|
||||||
(__lll_timedlock_wait) Wake before returning timeout.
|
|
||||||
|
|
||||||
--- glibc-2.7/nptl/sysdeps/unix/sysv/linux/lowlevellock.c 2007-08-14 14:59:34.000000000 -0500
|
|
||||||
+++ glibc-2.7.new/nptl/sysdeps/unix/sysv/linux/lowlevellock.c 2007-11-01 12:25:49.000000000 -0500
|
|
||||||
@@ -76,12 +76,16 @@
|
|
||||||
--rt.tv_sec;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ int oldval = atomic_compare_and_exchange_val_acq (futex, 2, 1);
|
|
||||||
/* Already timed out? */
|
|
||||||
if (rt.tv_sec < 0)
|
|
||||||
- return ETIMEDOUT;
|
|
||||||
+ {
|
|
||||||
+ if (oldval == 0)
|
|
||||||
+ lll_futex_wake (futex, 1, private);
|
|
||||||
+ return ETIMEDOUT;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
/* Wait. */
|
|
||||||
- int oldval = atomic_compare_and_exchange_val_acq (futex, 2, 1);
|
|
||||||
if (oldval != 0)
|
|
||||||
lll_futex_timed_wait (futex, 2, &rt, private);
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
--- sysdeps/i386/i586/memcpy_chk.S.i586 2007-10-02 07:00:06.000000000 -0700
|
|
||||||
+++ sysdeps/i386/i586/memcpy_chk.S 2007-10-02 06:58:51.000000000 -0700
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+#include <sysdeps/i386/i686/memcpy_chk.S>
|
|
||||||
--- sysdeps/i386/i586/mempcpy_chk.S.i586 2007-10-02 07:00:06.000000000 -0700
|
|
||||||
+++ sysdeps/i386/i586/mempcpy_chk.S 2007-10-02 06:58:51.000000000 -0700
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+#include <sysdeps/i386/i686/mempcpy_chk.S>
|
|
||||||
--- sysdeps/i386/i586/memset_chk.S.i586 2007-10-02 07:00:06.000000000 -0700
|
|
||||||
+++ sysdeps/i386/i586/memset_chk.S 2007-10-02 06:58:51.000000000 -0700
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+#include <sysdeps/i386/i686/memset_chk.S>
|
|
@ -1,45 +0,0 @@
|
|||||||
diff -Nru glibc-2.7.orig/sysdeps/posix/getaddrinfo.c glibc-2.7/sysdeps/posix/getaddrinfo.c
|
|
||||||
--- glibc-2.7.orig/sysdeps/posix/getaddrinfo.c 2007-10-17 18:05:12.000000000 +0200
|
|
||||||
+++ glibc-2.7/sysdeps/posix/getaddrinfo.c 2008-02-05 19:53:08.000000000 +0100
|
|
||||||
@@ -263,7 +263,7 @@
|
|
||||||
static int
|
|
||||||
gaih_inet (const char *name, const struct gaih_service *service,
|
|
||||||
const struct addrinfo *req, struct addrinfo **pai,
|
|
||||||
- unsigned int *naddrs)
|
|
||||||
+ unsigned int *naddrs, bool usable_ipv6)
|
|
||||||
{
|
|
||||||
const struct gaih_typeproto *tp = gaih_inet_typeproto;
|
|
||||||
struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv;
|
|
||||||
@@ -706,7 +706,7 @@
|
|
||||||
if (fct != NULL)
|
|
||||||
{
|
|
||||||
if (req->ai_family == AF_INET6
|
|
||||||
- || req->ai_family == AF_UNSPEC)
|
|
||||||
+ || (req->ai_family == AF_UNSPEC && usable_ipv6))
|
|
||||||
{
|
|
||||||
gethosts (AF_INET6, struct in6_addr);
|
|
||||||
no_inet6_data = no_data;
|
|
||||||
@@ -1914,7 +1914,7 @@
|
|
||||||
if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET
|
|
||||||
|| hints->ai_family == AF_INET6)
|
|
||||||
{
|
|
||||||
- last_i = gaih_inet (name, pservice, hints, end, &naddrs);
|
|
||||||
+ last_i = gaih_inet (name, pservice, hints, end, &naddrs, seen_ipv6);
|
|
||||||
if (last_i != 0)
|
|
||||||
{
|
|
||||||
freeaddrinfo (p);
|
|
||||||
diff -Nru glibc-2.7.orig/sysdeps/unix/sysv/linux/check_pf.c glibc-2.7/sysdeps/unix/sysv/linux/check_pf.c
|
|
||||||
--- glibc-2.7.orig/sysdeps/unix/sysv/linux/check_pf.c 2007-08-29 18:49:45.000000000 +0200
|
|
||||||
+++ glibc-2.7/sysdeps/unix/sysv/linux/check_pf.c 2008-02-05 19:50:30.000000000 +0100
|
|
||||||
@@ -201,7 +201,10 @@
|
|
||||||
{
|
|
||||||
out_v6:
|
|
||||||
if (!IN6_IS_ADDR_LOOPBACK (address ?: local))
|
|
||||||
- *seen_ipv6 = true;
|
|
||||||
+ if (ifam->ifa_scope < RT_SCOPE_LINK)
|
|
||||||
+ {
|
|
||||||
+ *seen_ipv6 = true;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ifam->ifa_flags & (IFA_F_DEPRECATED
|
|
@ -1,11 +0,0 @@
|
|||||||
--- glibc-2.7/sysdeps/i386/fpu/ftestexcept.c.vaniglia 2009-01-28 22:38:10.000000000 +0100
|
|
||||||
+++ glibc-2.7/sysdeps/i386/fpu/ftestexcept.c 2009-01-28 22:39:05.000000000 +0100
|
|
||||||
@@ -26,7 +26,7 @@
|
|
||||||
int
|
|
||||||
fetestexcept (int excepts)
|
|
||||||
{
|
|
||||||
- int temp;
|
|
||||||
+ short temp;
|
|
||||||
int xtemp = 0;
|
|
||||||
|
|
||||||
/* Get current exceptions. */
|
|
@ -1,12 +0,0 @@
|
|||||||
--- ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h.orig
|
|
||||||
+++ ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
|
|
||||||
@@ -73,6 +73,9 @@
|
|
||||||
# define DOCARGS_5 DOCARGS_4
|
|
||||||
# define UNDOCARGS_5 UNDOCARGS_4
|
|
||||||
|
|
||||||
+# define DOCARGS_6 DOCARGS_5
|
|
||||||
+# define UNDOCARGS_6 UNDOCARGS_5
|
|
||||||
+
|
|
||||||
# ifdef IS_IN_libpthread
|
|
||||||
# define CENABLE bl PLTJMP(__pthread_enable_asynccancel)
|
|
||||||
# define CDISABLE bl PLTJMP(__pthread_disable_asynccancel)
|
|
42
glibc-locale-gen
Normal file
42
glibc-locale-gen
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
LOCALEGEN=/etc/locale.gen
|
||||||
|
LOCALES=/usr/share/i18n/locales
|
||||||
|
if [ -n "$POSIXLY_CORRECT" ]; then
|
||||||
|
unset POSIXLY_CORRECT
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0;
|
||||||
|
|
||||||
|
# Remove all old locale dir and locale-archive before generating new
|
||||||
|
# locale data.
|
||||||
|
rm -rf /usr/lib/locale/locale-archive || true
|
||||||
|
|
||||||
|
umask 022
|
||||||
|
|
||||||
|
is_entry_ok() {
|
||||||
|
if [ -n "$locale" -a -n "$charset" ] ; then
|
||||||
|
true
|
||||||
|
else
|
||||||
|
echo "error: Bad entry '$locale $charset'"
|
||||||
|
false
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Generating locales..."
|
||||||
|
while read locale charset; do \
|
||||||
|
case $locale in \#*) continue;; "") continue;; esac; \
|
||||||
|
is_entry_ok || continue
|
||||||
|
echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \
|
||||||
|
echo -n ".$charset"; \
|
||||||
|
echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \
|
||||||
|
echo -n '...'; \
|
||||||
|
if [ -f $LOCALES/$locale ]; then input=$locale; else \
|
||||||
|
input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; fi; \
|
||||||
|
localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale; \
|
||||||
|
echo ' done'; \
|
||||||
|
done < $LOCALEGEN
|
||||||
|
echo "Generation complete."
|
17
glibc-locale.gen.txt
Normal file
17
glibc-locale.gen.txt
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Configuration file for locale-gen
|
||||||
|
#
|
||||||
|
# lists of locales that are to be generated by the locale-gen command.
|
||||||
|
#
|
||||||
|
# Each line is of the form:
|
||||||
|
#
|
||||||
|
# <locale> <charset>
|
||||||
|
#
|
||||||
|
# where <locale> is one of the locales given in /usr/share/i18n/locales
|
||||||
|
# and <charset> is one of the character sets listed in /usr/share/i18n/charmaps
|
||||||
|
#
|
||||||
|
# The locale-gen command will generate all the locales,
|
||||||
|
# placing them in /usr/lib/locale.
|
||||||
|
#
|
||||||
|
# A list of supported locales is given in /usr/share/i18n/SUPPORTED
|
||||||
|
# and is included in this file. Uncomment the needed locales below.
|
||||||
|
#
|
@ -1,19 +0,0 @@
|
|||||||
commit 2d80bda39073a35af4b904d27fa1511cd309b26f
|
|
||||||
Author: Nathan Sidwell <nathan@codesourcery.com>
|
|
||||||
Date: Fri Jan 6 20:14:44 2012 +0000
|
|
||||||
|
|
||||||
Add ARM dependency of libmemusage.so on libc_nonshared.a.
|
|
||||||
|
|
||||||
diff --git a/sysdeps/arm/Makefile b/sysdeps/arm/Makefile
|
|
||||||
index 5651161..1a88430 100644
|
|
||||||
--- a/ports/sysdeps/arm/Makefile
|
|
||||||
+++ b/ports/sysdeps/arm/Makefile
|
|
||||||
@@ -7,3 +7,8 @@ endif
|
|
||||||
ifeq ($(subdir),csu)
|
|
||||||
gen-as-const-headers += tlsdesc.sym
|
|
||||||
endif
|
|
||||||
+
|
|
||||||
+# to pull in __aeabi_read_tp, needed for tls
|
|
||||||
+ifeq ($(subdir),malloc)
|
|
||||||
+$(objpfx)libmemusage.so: $(common-objpfx)libc_nonshared.a
|
|
||||||
+endif
|
|
212
glibc.spec
212
glibc.spec
@ -9,7 +9,18 @@
|
|||||||
#rpmbuild -ba --define='cross_target_cpu arm' --define='softfloat 1' glibc.spec
|
#rpmbuild -ba --define='cross_target_cpu arm' --define='softfloat 1' glibc.spec
|
||||||
|
|
||||||
%define majver %(echo %version | cut -d. -f1-2)
|
%define majver %(echo %version | cut -d. -f1-2)
|
||||||
#%define minver %(echo %version | cut -d. -f3)
|
|
||||||
|
#% if "%{?KERNEL_VER}" == ""
|
||||||
|
# % define KERNEL_VER %(uname -r | sed "s|\\([0-9.]*\\).*|\\1|" )
|
||||||
|
#% endif
|
||||||
|
|
||||||
|
%if "%{?KERNEL_TARGET}" == ""
|
||||||
|
%ifarch %{ix86}
|
||||||
|
%define KERNEL_TARGET mamba
|
||||||
|
%else
|
||||||
|
%define KERNEL_TARGET mamba-%{_target_cpu}
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
%if "%{?build_doc}" == ""
|
%if "%{?build_doc}" == ""
|
||||||
%define build_doc 1
|
%define build_doc 1
|
||||||
@ -74,48 +85,31 @@
|
|||||||
%define build_selinux 0
|
%define build_selinux 0
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
#% if "%{?KERNEL_VER}" == ""
|
|
||||||
# % define KERNEL_VER %(uname -r | sed "s|\\([0-9.]*\\).*|\\1|" )
|
|
||||||
#% endif
|
|
||||||
|
|
||||||
%if "%{?KERNEL_TARGET}" == ""
|
|
||||||
%define KERNEL_TARGET %(uname -r | sed "s|[0-9.]*\\(.*\\)|\\1|" )
|
|
||||||
%endif
|
|
||||||
|
|
||||||
Name: glibc
|
Name: glibc
|
||||||
Version: 2.40
|
Version: 2.40
|
||||||
Release: 2mamba
|
Release: 3mamba
|
||||||
Summary: The GNU libc libraries
|
Summary: The GNU libc libraries
|
||||||
Group: System/Libraries
|
Group: System/Libraries
|
||||||
Vendor: openmamba
|
Vendor: openmamba
|
||||||
Distribution: openmamba
|
Distribution: openmamba
|
||||||
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
URL: https://www.gnu.org/software/libc/
|
URL: https://www.gnu.org/software/libc/
|
||||||
Source0: http://ftp.gnu.org/gnu/glibc/glibc-%{version}.tar.xz
|
Source0: https://ftp.gnu.org/gnu/glibc/glibc-%{version}.tar.xz
|
||||||
Source4: nscd-logrotate
|
Source4: nscd-logrotate
|
||||||
Source5: nscd-conf
|
Source5: nscd-conf
|
||||||
Source6: nscd-initscript
|
Source6: nscd-initscript
|
||||||
Patch0: %{name}-2.4-manual-syntax-fix.patch
|
Source7: glibc-locale-gen
|
||||||
Patch1: %{name}-2.6.1-strlcpy_strlcat-1.patch
|
Source8: glibc-locale.gen.txt
|
||||||
Patch2: %{name}-2.7-memcpy_chk_S.patch
|
Patch5: glibc-2.16.0-localedata_openmamba.patch
|
||||||
Patch3: %{name}-2.9-arm_local_args6.patch
|
|
||||||
Patch4: %{name}-2.7-lowlevellock.patch
|
|
||||||
Patch5: %{name}-2.16.0-localedata_openmamba.patch
|
|
||||||
Patch6: %{name}-2.7-only-lookup-ipv6-if-it-makes-sense.patch
|
|
||||||
Patch7: %{name}-2.7-gcc-4.3.patch
|
|
||||||
Patch8: %{name}-2.7-x86-fnstsw.patch
|
|
||||||
Patch9: %{name}-2.10.1-binutils-2.20.patch
|
|
||||||
Patch10: %{name}-2.11.2-gcc-4.5.0.patch
|
|
||||||
Patch11: %{name}-2.13-fix_prelink_ld_so.patch
|
|
||||||
Patch12: %{name}-2.14.1-fix-segfault-at-dl-lookup.patch
|
|
||||||
Patch13: %{name}-2.14-fix-resolver-crash-typo.patch
|
|
||||||
Patch14: %{name}-2.14-rpc_nis_headers_restore.patch
|
|
||||||
Patch15: glibc-ports-2.15-arm-libmemusage-libc_nonshared.patch
|
|
||||||
Patch16: glibc-2.16.0-tetex-3.0.patch
|
|
||||||
Patch17: glibc-2.21-prevent-ehaustion-of-tls-slots.patch
|
Patch17: glibc-2.21-prevent-ehaustion-of-tls-slots.patch
|
||||||
Patch18: glibc-2.25-resolv-no-compat.patch
|
|
||||||
License: LGPL
|
License: LGPL
|
||||||
## AUTOBUILDREQ-BEGIN
|
## AUTOBUILDREQ-BEGIN
|
||||||
|
BuildRequires: libaudit-devel
|
||||||
|
BuildRequires: libcap-devel
|
||||||
|
BuildRequires: libgd-devel
|
||||||
|
BuildRequires: libpng-devel
|
||||||
|
BuildRequires: libselinux-devel
|
||||||
|
BuildRequires: libz-devel
|
||||||
## AUTOBUILDREQ-END
|
## AUTOBUILDREQ-END
|
||||||
BuildRequires: libidn-devel
|
BuildRequires: libidn-devel
|
||||||
BuildRequires: binutils >= 2.13
|
BuildRequires: binutils >= 2.13
|
||||||
@ -141,17 +135,12 @@ BuildRequires: kernelsanitisedheaders
|
|||||||
BuildRequires: libpython3-devel
|
BuildRequires: libpython3-devel
|
||||||
BuildRequires: elfutils
|
BuildRequires: elfutils
|
||||||
%endif
|
%endif
|
||||||
Requires: ldconfig = %{?epoch:%epoch:}%{version}-%{release}
|
Requires(post): ldconfig = %{?epoch:%epoch:}%{version}-%{release}
|
||||||
Requires: locales = %{?epoch:%epoch:}%{version}-%{release}
|
Requires(post): glibc-utils = %{?epoch:%epoch:}%{version}-%{release}
|
||||||
Requires: glibc-utils = %{?epoch:%epoch:}%{version}-%{release}
|
Requires(post): glibc-common = %{?epoch:%epoch:}%{version}-%{release}
|
||||||
Requires(pre): libxcrypt
|
Requires(pre): libxcrypt
|
||||||
%systemd_requires
|
%systemd_requires
|
||||||
|
|
||||||
# FIXME :
|
|
||||||
# $> localedef -v -c -i da_DK -f UTF-8 /tmp/da_DK.UTF-8
|
|
||||||
# character map file `UTF-8' not found: No such file or directory
|
|
||||||
# cannot read character map directory `/usr/share/i18n/charmaps': No such file or directory
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
The glibc package contains standard libraries which are used by multiple programs on the system.
|
The glibc package contains standard libraries which are used by multiple programs on the system.
|
||||||
In order to save disk space and memory, as well as to make upgrading easier, common system code is kept in one place and shared between programs.
|
In order to save disk space and memory, as well as to make upgrading easier, common system code is kept in one place and shared between programs.
|
||||||
@ -212,13 +201,23 @@ Requires: glibc-devel = %{?epoch:%epoch:}%{version}-%{release}
|
|||||||
GNU libc libraries API documentation.
|
GNU libc libraries API documentation.
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%package i18ndata
|
%package common
|
||||||
Summary: Database sources for 'locale'
|
Summary: Common files shared by multiple binary glibc installations
|
||||||
Group: System/Libraries
|
Group: System/Libraries
|
||||||
Requires(pre): %{name} = %{?epoch:%epoch:}%{version}-%{release}
|
Provides: glibc-i18ndata
|
||||||
|
Obsoletes: glibc-i18ndata <= 2.40-2mamba
|
||||||
|
Provides: locales
|
||||||
|
Obsoletes: locales <= 2.40-2mamba
|
||||||
|
|
||||||
%description i18ndata
|
%description common
|
||||||
This package contains the data needed to build the locale data files to use the internationalization features of the GNU libc.
|
Common files shared by multiple binary glibc installations.
|
||||||
|
|
||||||
|
%package locales
|
||||||
|
Summary: Pregenerated locales for the GNU C Library
|
||||||
|
Group: System/Internationalization
|
||||||
|
|
||||||
|
%description locales
|
||||||
|
Pregenerated locales for the GNU C Library.
|
||||||
|
|
||||||
%package utils
|
%package utils
|
||||||
Summary: Development utilities from GNU C library
|
Summary: Development utilities from GNU C library
|
||||||
@ -250,16 +249,6 @@ Requires(post):tzdata
|
|||||||
%description -n timezone
|
%description -n timezone
|
||||||
These are configuration files that describe possible time zones.
|
These are configuration files that describe possible time zones.
|
||||||
|
|
||||||
%package -n locales
|
|
||||||
Summary: Base files for localization
|
|
||||||
Group: System/Internationalization
|
|
||||||
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
|
|
||||||
|
|
||||||
%description -n locales
|
|
||||||
These are the base files for language localization.
|
|
||||||
You also need to install the specific locales-?? for the language(s) you want.
|
|
||||||
Then the user need to set the LANG variable to their preferred language in their ~/.profile configuration file.
|
|
||||||
|
|
||||||
%package -n nscd
|
%package -n nscd
|
||||||
Summary: Name service cache daemon
|
Summary: Name service cache daemon
|
||||||
Group: System/Servers
|
Group: System/Servers
|
||||||
@ -291,6 +280,9 @@ Cross Platform glibc for %{_target_platform}.
|
|||||||
%debug_package
|
%debug_package
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# Don't clean build at the end
|
||||||
|
%global __spec_rmbuild_cmd /bin/true
|
||||||
|
|
||||||
# Filter out all GLIBC_PRIVATE symbols since they are internal to
|
# Filter out all GLIBC_PRIVATE symbols since they are internal to
|
||||||
# the package and should not be examined by any other tool.
|
# the package and should not be examined by any other tool.
|
||||||
%global __filter_GLIBC_PRIVATE 1
|
%global __filter_GLIBC_PRIVATE 1
|
||||||
@ -299,9 +291,7 @@ Cross Platform glibc for %{_target_platform}.
|
|||||||
%setup -q
|
%setup -q
|
||||||
#-D -T
|
#-D -T
|
||||||
#:<< ___EOF
|
#:<< ___EOF
|
||||||
%patch 5 -p1
|
|
||||||
%patch 17 -p1
|
%patch 17 -p1
|
||||||
#%patch18 -p1
|
|
||||||
|
|
||||||
%if "%{?stage2}"
|
%if "%{?stage2}"
|
||||||
# link glibc without libgcc_eh, not available in stage1 cross compiler
|
# link glibc without libgcc_eh, not available in stage1 cross compiler
|
||||||
@ -523,26 +513,39 @@ ln -s ../lib/locale %{buildroot}/usr/lib32/locale
|
|||||||
|
|
||||||
%makeinstall -C ../glibc-build
|
%makeinstall -C ../glibc-build
|
||||||
|
|
||||||
# install openmamba default supported locales
|
|
||||||
mv localedata/SUPPORTED localedata/SUPPORTED.orig
|
|
||||||
mv localedata/SUPPORTED.openmamba localedata/SUPPORTED
|
|
||||||
echo "%{_target_platform} == %{_host}"
|
|
||||||
%if "%{_target_platform}" == "%{_build}"
|
%if "%{_target_platform}" == "%{_build}"
|
||||||
%ifarch aarch64
|
%ifarch aarch64
|
||||||
install -d -m0755 %{buildroot}%{_prefix}/lib
|
install -d -m0755 %{buildroot}%{_prefix}/lib
|
||||||
ln -s ../lib64/ld-linux-aarch64.so.1 %{buildroot}%{_prefix}/lib/ld-linux-aarch64.so.1
|
ln -s ../lib64/ld-linux-aarch64.so.1 %{buildroot}%{_prefix}/lib/ld-linux-aarch64.so.1
|
||||||
%endif
|
%endif
|
||||||
make localedata/install-locales -C ../glibc-build install_root=%{buildroot}
|
# install locale-gen
|
||||||
|
install -D -m0755 %{SOURCE7} %{buildroot}%{_bindir}/locale-gen
|
||||||
|
|
||||||
|
# Create /etc/locale.gen
|
||||||
|
install -m644 %{SOURCE8} %{buildroot}%{_sysconfdir}/locale.gen
|
||||||
|
sed -e '1,3d' -e 's|/| |g' -e 's| \\||g' -e 's|^|#|g' \
|
||||||
|
localedata/SUPPORTED >> %{buildroot}%{_sysconfdir}/locale.gen
|
||||||
|
sed -i '/#C\.UTF-8 /d' %{buildroot}%{_sysconfdir}/locale.gen
|
||||||
|
make localedata/install-locale-files -C ../glibc-build install_root=%{buildroot}
|
||||||
|
|
||||||
%else
|
%else
|
||||||
# WORKAROUND: worked up to 2.21
|
# WORKAROUND: worked up to 2.21
|
||||||
mkdir -p %{buildroot}%{_prefix}/lib/locale
|
mkdir -p %{buildroot}%{_prefix}/lib/locale
|
||||||
make LOCALEDEF="I18NPATH=. LC_ALL=C localedef" localedata/install-locales -C ../glibc-build install_root=%{buildroot}
|
make LOCALEDEF="I18NPATH=. LC_ALL=C localedef" localedata/install-locale-files -C ../glibc-build install_root=%{buildroot}
|
||||||
install -d -m0755 %{buildroot}%{glibc_prefix}/lib/locale/
|
install -d -m0755 %{buildroot}%{glibc_prefix}/lib/locale/
|
||||||
mv %{buildroot}%{_prefix}/lib/locale/* %{buildroot}%{glibc_prefix}/lib/locale/
|
mv %{buildroot}%{_prefix}/lib/locale/* %{buildroot}%{glibc_prefix}/lib/locale/
|
||||||
%endif
|
%endif
|
||||||
mv localedata/SUPPORTED localedata/SUPPORTED.openmamba
|
# Locale creation via install-locale-files does not group identical files
|
||||||
mv localedata/SUPPORTED.orig localedata/SUPPORTED
|
# via hardlinks, so we must group them ourselves.
|
||||||
install -m0644 localedata/SUPPORTED %{buildroot}%{glibc_datadir}/i18n/locales/
|
hardlink -c %{buildroot}/%{glibc_prefix}/lib/locale
|
||||||
|
# Replace LC_CTYPE same files with symlinks to consistently reduce size of glibc-locales package
|
||||||
|
pushd %{buildroot}%{glibc_prefix}/lib/locale
|
||||||
|
for f in $(find eo syr tok *_* -samefile C.utf8/LC_CTYPE); do
|
||||||
|
rm $f && ln -s '../C.utf8/LC_CTYPE' $f
|
||||||
|
done
|
||||||
|
popd
|
||||||
|
# Add SUPPORTED file to package
|
||||||
|
install -m0644 localedata/SUPPORTED %{buildroot}%{glibc_datadir}/i18n/
|
||||||
[-e %{buildroot}%{glibc_libdir}/libbsd-compat.a ] && ln -sf libbsd-compat.a %{buildroot}%{glibc_libdir}/libbsd.a
|
[-e %{buildroot}%{glibc_libdir}/libbsd-compat.a ] && ln -sf libbsd-compat.a %{buildroot}%{glibc_libdir}/libbsd.a
|
||||||
%else
|
%else
|
||||||
# stage 1
|
# stage 1
|
||||||
@ -623,18 +626,6 @@ install -d %{buildroot}%{_docdir}/libc/html
|
|||||||
cp -a ../glibc-build/manual/libc/* %{buildroot}%{_docdir}/libc/html/
|
cp -a ../glibc-build/manual/libc/* %{buildroot}%{_docdir}/libc/html/
|
||||||
cp -a ../glibc-build/manual/libc.pdf %{buildroot}%{_docdir}/libc/
|
cp -a ../glibc-build/manual/libc.pdf %{buildroot}%{_docdir}/libc/
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
## provide legacy /lib[64] after glibc migration to /usr/lib[64]
|
|
||||||
#install -d -m0755 %{buildroot}%{_sysconfdir}/ld.so.conf.d
|
|
||||||
#%ifarch x86_64 aarch64
|
|
||||||
#cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/glibc64.conf << __EOF
|
|
||||||
#/%{_lib}
|
|
||||||
#__EOF
|
|
||||||
#%else
|
|
||||||
#cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/glibc.conf << __EOF
|
|
||||||
#/%{_lib}
|
|
||||||
#__EOF
|
|
||||||
#%endif
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%endif
|
%endif
|
||||||
@ -647,14 +638,6 @@ rm -rf %{buildroot}%{glibc_datadir}/zoneinfo
|
|||||||
%clean
|
%clean
|
||||||
[ "%{buildroot}" != / ] && rm -rf %{buildroot}
|
[ "%{buildroot}" != / ] && rm -rf %{buildroot}
|
||||||
|
|
||||||
# this script does not permit the clean installation of glibc packages
|
|
||||||
# during the setup: i.e. do NOT use pre script here!
|
|
||||||
#%pre
|
|
||||||
#if [ -d %{_bindir}/getconf ]; then
|
|
||||||
# rm -fr %{_bindir}/getconf
|
|
||||||
#fi
|
|
||||||
#exit 0
|
|
||||||
|
|
||||||
%post
|
%post
|
||||||
if [ $1 -ge 1 ]; then
|
if [ $1 -ge 1 ]; then
|
||||||
cat > /tmp/migrate-libdirs.sh << _EOF
|
cat > /tmp/migrate-libdirs.sh << _EOF
|
||||||
@ -734,9 +717,15 @@ done
|
|||||||
_EOF
|
_EOF
|
||||||
chmod +x /tmp/migrate-libdirs.sh
|
chmod +x /tmp/migrate-libdirs.sh
|
||||||
fi
|
fi
|
||||||
:
|
|
||||||
|
|
||||||
%postun -p /usr/sbin/ldconfig
|
# update locale.gen to make sure current LANG locale is enabled
|
||||||
|
LOCALES=(`grep ${LANG/utf*/UTF-8} %{glibc_datadir}/i18n/SUPPORTED | awk '{ print $1 }'`);
|
||||||
|
for l in ${LOCALES[*]/\/*/}; do
|
||||||
|
sed -i "s|#${l}|${l}|" %{_sysconfdir}/locale.gen
|
||||||
|
done
|
||||||
|
# update locale-archive according to locale.gen
|
||||||
|
locale-gen
|
||||||
|
:
|
||||||
|
|
||||||
# Restore ld-linux loader after removing from /lib[64] to fix /usr/lib[64] migration
|
# Restore ld-linux loader after removing from /lib[64] to fix /usr/lib[64] migration
|
||||||
%triggerpostun -p <lua> -- glibc < 2.34-4mamba
|
%triggerpostun -p <lua> -- glibc < 2.34-4mamba
|
||||||
@ -767,12 +756,20 @@ for i, l in ipairs(libdirs) do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
%transfiletriggerin -n ldconfig -P 2000000 -- /%{_lib} %{_libdir}
|
%ifarch x86_64
|
||||||
/usr/sbin/ldconfig
|
%transfiletriggerin -n ldconfig -P 2000000 -- %{_libdir} %{_prefix}/lib
|
||||||
|
%else
|
||||||
|
%transfiletriggerin -n ldconfig -P 2000000 -- %{_libdir}
|
||||||
|
%endif
|
||||||
|
%{_bindir}/ldconfig
|
||||||
:
|
:
|
||||||
|
|
||||||
%transfiletriggerpostun -n ldconfig -P 2000000 -- /%{_lib} %{_libdir}
|
%ifarch x86_64
|
||||||
/usr/sbin/ldconfig
|
%transfiletriggerpostun -n ldconfig -P 2000000 -- %{_libdir} %{_prefix}/lib
|
||||||
|
%else
|
||||||
|
%transfiletriggerpostun -n ldconfig -P 2000000 -- %{_libdir}
|
||||||
|
%endif
|
||||||
|
%{_bindir}/ldconfig
|
||||||
:
|
:
|
||||||
|
|
||||||
%pre devel
|
%pre devel
|
||||||
@ -808,17 +805,6 @@ fi
|
|||||||
%uninstall_info libc.info
|
%uninstall_info libc.info
|
||||||
:
|
:
|
||||||
|
|
||||||
%posttrans i18ndata
|
|
||||||
# update locale-archive for current language settings
|
|
||||||
LOCALES=(`grep ${LANG:0:5} %{glibc_datadir}/i18n/locales/SUPPORTED | awk '{ print $1 }'`);
|
|
||||||
for l in ${LOCALES[*]}; do
|
|
||||||
charset=`echo $l | sed -e 's,.*/,,'`
|
|
||||||
locale=`echo $l | sed -e 's,/[^/]*,,'`
|
|
||||||
input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`
|
|
||||||
localedef -i $input -c -f $charset $locale
|
|
||||||
done
|
|
||||||
:
|
|
||||||
|
|
||||||
%pre -n nscd
|
%pre -n nscd
|
||||||
if [ $1 -ge 1 ]; then
|
if [ $1 -ge 1 ]; then
|
||||||
/usr/sbin/groupadd -g 65001 nscd &>/dev/null || true
|
/usr/sbin/groupadd -g 65001 nscd &>/dev/null || true
|
||||||
@ -901,10 +887,20 @@ fi
|
|||||||
%{_docdir}/libc/*
|
%{_docdir}/libc/*
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files i18ndata
|
%files common -f libc.lang
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
|
%config(noreplace) %{_sysconfdir}/locale.gen
|
||||||
|
%dir %{_prefix}/lib/locale
|
||||||
|
%dir %{_prefix}/lib/locale/C.utf8
|
||||||
|
%{_prefix}/lib/locale/C.utf8/*
|
||||||
%dir %{glibc_datadir}/i18n
|
%dir %{glibc_datadir}/i18n
|
||||||
%{glibc_datadir}/i18n/*
|
%{glibc_datadir}/i18n/*
|
||||||
|
%{glibc_datadir}/locale/locale.alias
|
||||||
|
|
||||||
|
%files locales
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_prefix}/lib/locale/*
|
||||||
|
%exclude %{_prefix}/lib/locale/C.utf8/*
|
||||||
|
|
||||||
%files utils
|
%files utils
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
@ -918,8 +914,8 @@ fi
|
|||||||
%{_bindir}/ldd
|
%{_bindir}/ldd
|
||||||
%{_bindir}/locale
|
%{_bindir}/locale
|
||||||
%{_bindir}/localedef
|
%{_bindir}/localedef
|
||||||
|
%{_bindir}/locale-gen
|
||||||
%{_bindir}/pldd
|
%{_bindir}/pldd
|
||||||
#%{_bindir}/rpcgen
|
|
||||||
%{_bindir}/sprof
|
%{_bindir}/sprof
|
||||||
%{_bindir}/tzselect
|
%{_bindir}/tzselect
|
||||||
%{_bindir}/mtrace
|
%{_bindir}/mtrace
|
||||||
@ -941,12 +937,6 @@ fi
|
|||||||
%dir %{_sysconfdir}/ld.so.conf.d
|
%dir %{_sysconfdir}/ld.so.conf.d
|
||||||
%{_sbindir}/ldconfig
|
%{_sbindir}/ldconfig
|
||||||
|
|
||||||
%files -n locales -f libc.lang
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%{glibc_datadir}/locale/locale.alias
|
|
||||||
%dir %{_prefix}/lib/locale
|
|
||||||
%{_prefix}/lib/locale/locale-archive
|
|
||||||
|
|
||||||
%files -n nscd
|
%files -n nscd
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%config(noreplace) %{_sysconfdir}/logrotate.d/nscd
|
%config(noreplace) %{_sysconfdir}/logrotate.d/nscd
|
||||||
@ -977,6 +967,12 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Oct 11 2024 Silvan Calarco <silvan.calarco@mambasoft.it> 2.40-3mamba
|
||||||
|
- provide locale-gen and /etc/locale.gen mechanism to generate /usr/lib/locale-archive
|
||||||
|
- provide C.utf8 as always preinstalled locale
|
||||||
|
- add glibc-common and integrate glibc-i18n, obsolete locales
|
||||||
|
- provide preprocessed locales in glibc-locales
|
||||||
|
|
||||||
* Fri Jul 26 2024 Silvan Calarco <silvan.calarco@mambasoft.it> 2.40-2mamba
|
* Fri Jul 26 2024 Silvan Calarco <silvan.calarco@mambasoft.it> 2.40-2mamba
|
||||||
- nscd: provide user and group nscd
|
- nscd: provide user and group nscd
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user