glibc: added new patches

This commit is contained in:
Luis
2023-08-18 23:26:06 +02:00
parent e47a9e2c13
commit cb36680639
14 changed files with 40 additions and 2350 deletions

View File

@@ -1,5 +1,7 @@
7199a12f80503cb9c37e82af3bac54b9 PATCH-nscd-Do-not-rebuild-getaddrinfo-bug-30709.patch
6d9f4595a014ca49b2620becc53fce26 fix-malloc-p1.patch
09f61068c014da1c397409e443b184dd fix-malloc-p2.patch
cabf312a0adc98de9d52a411b2c14baa genlocales
778cce0ea6bf7f84ca8caacf4a01f45b glibc-2.38.tar.xz
f87bc003e02b07545914e38ffd7eede4 ld.so.conf
f02419b094ba90195ca922b34a86b0af nsswitch.conf
c7a48a90a1948b5302807856b6ef884a reenable_DT_HASH.patch

View File

@@ -1,4 +1,4 @@
glibc-2.38-1
glibc-2.38-2
drwxr-xr-x root/root etc/
-rw-r--r-- root/root etc/ld.so.cache
-rw-r--r-- root/root etc/ld.so.conf
@@ -15,6 +15,7 @@ lrwxrwxrwx root/root lib/ld-linux.so.2 -> ../usr/lib32/ld-linux.so.2
-rwxr-xr-x root/root lib/libanl.so.1
-rwxr-xr-x root/root lib/libc.so.6
-rwxr-xr-x root/root lib/libc_malloc_debug.so.0
-rwxr-xr-x root/root lib/libcrypt.so.1
-rwxr-xr-x root/root lib/libdl.so.2
-rwxr-xr-x root/root lib/libm.so.6
-rwxr-xr-x root/root lib/libmemusage.so
@@ -39,7 +40,7 @@ drwxr-xr-x root/root usr/
drwxr-xr-x root/root usr/bin/
-rwxr-xr-x root/root usr/bin/gencat
-rwxr-xr-x root/root usr/bin/genlocales
hrwxr-xr-x root/root usr/bin/getconf link to usr/lib/getconf/POSIX_V7_LP64_OFF64
-rwxr-xr-x root/root usr/bin/getconf
-rwxr-xr-x root/root usr/bin/getent
-rwxr-xr-x root/root usr/bin/iconv
lrwxrwxrwx root/root usr/bin/ld.so -> ../../lib/ld-linux-x86-64.so.2
@@ -47,6 +48,8 @@ lrwxrwxrwx root/root usr/bin/ld.so -> ../../lib/ld-linux-x86-64.so.2
-rwxr-xr-x root/root usr/bin/locale
-rwxr-xr-x root/root usr/bin/localedef
-rwxr-xr-x root/root usr/bin/makedb
-rwxr-xr-x root/root usr/bin/memusage
-rwxr-xr-x root/root usr/bin/memusagestat
-rwxr-xr-x root/root usr/bin/mtrace
-rwxr-xr-x root/root usr/bin/pcprofiledump
-rwxr-xr-x root/root usr/bin/pldd
@@ -302,6 +305,7 @@ drwxr-xr-x root/root usr/include/bits/types/
-rw-r--r-- root/root usr/include/byteswap.h
-rw-r--r-- root/root usr/include/complex.h
-rw-r--r-- root/root usr/include/cpio.h
-rw-r--r-- root/root usr/include/crypt.h
-rw-r--r-- root/root usr/include/ctype.h
-rw-r--r-- root/root usr/include/dirent.h
-rw-r--r-- root/root usr/include/dlfcn.h
@@ -819,9 +823,9 @@ drwxr-xr-x root/root usr/lib/gconv/gconv-modules.d/
-rwxr-xr-x root/root usr/lib/gconv/libKSC.so
-rw-r--r-- root/root usr/lib/gcrt1.o
drwxr-xr-x root/root usr/lib/getconf/
hrwxr-xr-x root/root usr/lib/getconf/POSIX_V6_LP64_OFF64 link to usr/lib/getconf/POSIX_V7_LP64_OFF64
-rwxr-xr-x root/root usr/lib/getconf/POSIX_V7_LP64_OFF64
hrwxr-xr-x root/root usr/lib/getconf/XBS5_LP64_OFF64 link to usr/lib/getconf/POSIX_V7_LP64_OFF64
hrwxr-xr-x root/root usr/lib/getconf/POSIX_V6_LP64_OFF64 link to usr/bin/getconf
hrwxr-xr-x root/root usr/lib/getconf/POSIX_V7_LP64_OFF64 link to usr/bin/getconf
hrwxr-xr-x root/root usr/lib/getconf/XBS5_LP64_OFF64 link to usr/bin/getconf
-rw-r--r-- root/root usr/lib/grcrt1.o
-rw-r--r-- root/root usr/lib/libBrokenLocale.a
lrwxrwxrwx root/root usr/lib/libBrokenLocale.so -> ../../lib/libBrokenLocale.so.1
@@ -831,6 +835,8 @@ lrwxrwxrwx root/root usr/lib/libanl.so -> ../../lib/libanl.so.1
-rw-r--r-- root/root usr/lib/libc.so
lrwxrwxrwx root/root usr/lib/libc_malloc_debug.so -> ../../lib/libc_malloc_debug.so.0
-rw-r--r-- root/root usr/lib/libc_nonshared.a
-rw-r--r-- root/root usr/lib/libcrypt.a
lrwxrwxrwx root/root usr/lib/libcrypt.so -> ../../lib/libcrypt.so.1
-rw-r--r-- root/root usr/lib/libdl.a
-rw-r--r-- root/root usr/lib/libg.a
-rw-r--r-- root/root usr/lib/libm-2.38.a
@@ -1136,6 +1142,9 @@ lrwxrwxrwx root/root usr/lib32/libanl.so -> libanl.so.1
lrwxrwxrwx root/root usr/lib32/libc_malloc_debug.so -> libc_malloc_debug.so.0
-rwxr-xr-x root/root usr/lib32/libc_malloc_debug.so.0
-rw-r--r-- root/root usr/lib32/libc_nonshared.a
-rw-r--r-- root/root usr/lib32/libcrypt.a
lrwxrwxrwx root/root usr/lib32/libcrypt.so -> libcrypt.so.1
-rwxr-xr-x root/root usr/lib32/libcrypt.so.1
-rw-r--r-- root/root usr/lib32/libdl.a
-rwxr-xr-x root/root usr/lib32/libdl.so.2
-rw-r--r-- root/root usr/lib32/libg.a

View File

@@ -1,220 +0,0 @@
From mboxrd@z Thu Jan 1 00:00:00 1970
Return-Path: <SRS0=xFJ7=DS=redhat.com=fweimer@sourceware.org>
Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124])
by sourceware.org (Postfix) with ESMTPS id 5D26B3858D28
for <libc-alpha@sourceware.org>; Tue, 1 Aug 2023 14:13:31 +0000 (GMT)
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5D26B3858D28
Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com
Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
s=mimecast20190719; t=1690899210;
h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
to:to:cc:mime-version:mime-version:content-type:content-type;
bh=V+JHgiMkmVZokr9OzsvqE1BzYrJXvG5qaZBzgKJakQ4=;
b=VhrsRVYC3hPKEhEDGPIA+Q0nD8f+BrWTPkjE4XsI3pS/SeQoRIz4nRl+dFQGtr6xJrmzGb
8kgmy1w+kHlyRs9UhmBG6fwYlbk8qDVxf/D41VYhEI6WhMJolECPNVUmqcjSYcYb05Itdv
PV0aldwA6xUr3soWj4a3wcHoy9dgK44=
Received: from mimecast-mx02.redhat.com (66.187.233.73 [66.187.233.73]) by
relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2,
cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
us-mta-449-ZVR6yPn8M3CvvwxXwD9rXw-1; Tue, 01 Aug 2023 10:13:28 -0400
X-MC-Unique: ZVR6yPn8M3CvvwxXwD9rXw-1
Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1])
(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
(No client certificate requested)
by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4FE4A1C03D8F
for <libc-alpha@sourceware.org>; Tue, 1 Aug 2023 14:13:28 +0000 (UTC)
Received: from oldenburg.str.redhat.com (unknown [10.2.16.12])
by smtp.corp.redhat.com (Postfix) with ESMTPS id D398B40C2063
for <libc-alpha@sourceware.org>; Tue, 1 Aug 2023 14:13:27 +0000 (UTC)
From: Florian Weimer <fweimer@redhat.com>
To: libc-alpha@sourceware.org
Subject: [PATCH] nscd: Do not rebuild getaddrinfo (bug 30709)
Date: Tue, 01 Aug 2023 16:13:26 +0200
Message-ID: <87sf924zqx.fsf@oldenburg.str.redhat.com>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain
X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org
List-Id: <libc-alpha.sourceware.org>
The nscd daemon caches hosts data from NSS modules verbatim, without
filtering protocol families or sorting them (otherwise separate caches
would be needed for certain ai_flags combinations). The cache
implementation is complete separate from the getaddrinfo code. This
means that rebuilding getaddrinfo is not needed. The only function
actually used is __bump_nl_timestamp from check_pf.c, and this change
moves it into nscd/connections.c.
Tested on x86_64-linux-gnu with -fexceptions, built with
build-many-glibcs.py. I also backported this patch into a distribution
that still supports nscd and verified manually that caching still works.
---
include/ifaddrs.h | 4 ---
inet/check_pf.c | 9 -------
nscd/Makefile | 2 +-
nscd/connections.c | 11 +++++++++
nscd/gai.c | 50 --------------------------------------
sysdeps/unix/sysv/linux/check_pf.c | 17 +------------
6 files changed, 13 insertions(+), 80 deletions(-)
diff --git a/include/ifaddrs.h b/include/ifaddrs.h
index 416118f1b3..19a3afb19f 100644
--- a/include/ifaddrs.h
+++ b/include/ifaddrs.h
@@ -34,9 +34,5 @@ extern void __check_native (uint32_t a1_index, int *a1_native,
uint32_t a2_index, int *a2_native)
attribute_hidden;
-#if IS_IN (nscd)
-extern uint32_t __bump_nl_timestamp (void) attribute_hidden;
-#endif
-
# endif /* !_ISOMAC */
#endif /* ifaddrs.h */
diff --git a/inet/check_pf.c b/inet/check_pf.c
index 5310c99121..6d1475920f 100644
--- a/inet/check_pf.c
+++ b/inet/check_pf.c
@@ -60,12 +60,3 @@ __free_in6ai (struct in6addrinfo *in6ai)
{
/* Nothing to do. */
}
-
-
-#if IS_IN (nscd)
-uint32_t
-__bump_nl_timestamp (void)
-{
- return 0;
-}
-#endif
diff --git a/nscd/Makefile b/nscd/Makefile
index 2a0489f4cf..16b6460ee9 100644
--- a/nscd/Makefile
+++ b/nscd/Makefile
@@ -35,7 +35,7 @@ nscd-modules := nscd connections pwdcache getpwnam_r getpwuid_r grpcache \
getgrnam_r getgrgid_r hstcache gethstbyad_r gethstbynm3_r \
getsrvbynm_r getsrvbypt_r servicescache \
dbg_log nscd_conf nscd_stat cache mem nscd_setup_thread \
- xmalloc xstrdup aicache initgrcache gai res_hconf \
+ xmalloc xstrdup aicache initgrcache res_hconf \
netgroupcache cachedumper
ifeq ($(build-nscd)$(have-thread-library),yesyes)
diff --git a/nscd/connections.c b/nscd/connections.c
index a405a44a9b..15693e5090 100644
--- a/nscd/connections.c
+++ b/nscd/connections.c
@@ -256,6 +256,17 @@ int inotify_fd = -1;
#ifdef HAVE_NETLINK
/* Descriptor for netlink status updates. */
static int nl_status_fd = -1;
+
+static uint32_t
+__bump_nl_timestamp (void)
+{
+ static uint32_t nl_timestamp;
+
+ if (atomic_fetch_add_relaxed (&nl_timestamp, 1) + 1 == 0)
+ atomic_fetch_add_relaxed (&nl_timestamp, 1);
+
+ return nl_timestamp;
+}
#endif
/* Number of times clients had to wait. */
diff --git a/nscd/gai.c b/nscd/gai.c
deleted file mode 100644
index e29f3fe583..0000000000
--- a/nscd/gai.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 2004-2023 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published
- by the Free Software Foundation; version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, see <https://www.gnu.org/licenses/>. */
-
-#include <alloca.h>
-#include <sys/stat.h>
-
-/* This file uses the getaddrinfo code but it compiles it without NSCD
- support. We just need a few symbol renames. */
-#define __ioctl ioctl
-#define __getsockname getsockname
-#define __socket socket
-#define __recvmsg recvmsg
-#define __bind bind
-#define __sendto sendto
-#define __strchrnul strchrnul
-#define __getline getline
-#define __qsort_r qsort_r
-/* nscd uses 1MB or 2MB thread stacks. */
-#define __libc_use_alloca(size) (size <= __MAX_ALLOCA_CUTOFF)
-#define __getifaddrs getifaddrs
-#define __freeifaddrs freeifaddrs
-#undef __fstat64
-#define __fstat64 fstat64
-#undef __stat64
-#define __stat64 stat64
-
-/* We are nscd, so we don't want to be talking to ourselves. */
-#undef USE_NSCD
-
-#include <getaddrinfo.c>
-
-/* Support code. */
-#include <check_pf.c>
-#include <check_native.c>
-
-/* Some variables normally defined in libc. */
-nss_action_list __nss_hosts_database attribute_hidden;
diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c
index 2b0b8b6368..3aa6a00348 100644
--- a/sysdeps/unix/sysv/linux/check_pf.c
+++ b/sysdeps/unix/sysv/linux/check_pf.c
@@ -66,25 +66,10 @@ static struct cached_data *cache;
__libc_lock_define_initialized (static, lock);
-#if IS_IN (nscd)
-static uint32_t nl_timestamp;
-
-uint32_t
-__bump_nl_timestamp (void)
-{
- if (atomic_fetch_add_relaxed (&nl_timestamp, 1) + 1 == 0)
- atomic_fetch_add_relaxed (&nl_timestamp, 1);
-
- return nl_timestamp;
-}
-#endif
-
static inline uint32_t
get_nl_timestamp (void)
{
-#if IS_IN (nscd)
- return nl_timestamp;
-#elif defined USE_NSCD
+#if defined USE_NSCD
return __nscd_get_nl_timestamp ();
#else
return 0;

View File

@@ -1,145 +1,28 @@
From e47de5cb2d4dbecb58f569ed241e8e95c568f03c Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Fri, 29 Apr 2022 16:37:51 +0200
Subject: [PATCH] Do not use --hash-style=both for building glibc shared
objects
From 31915e55f9c34f6137ab1c5ac002375a2d5d4589 Mon Sep 17 00:00:00 2001
From: Frederik Schwan <frederik.schwan@linux.com>
Date: Fri, 4 Aug 2023 15:19:57 +0200
Subject: [PATCH] force --hash-style=both to keep compatibility with old niche
software
The comment indicates that --hash-style=both was used to maintain
compatibility with static dlopen, but we had many internal ABI
changes since then, so this compatiblity does not add value anymore.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
---
Makeconfig | 9 +++++++++
Makerules | 7 +++++++
config.make.in | 1 +
configure | 28 ++++++++++++++++++++++++++++
configure.ac | 16 ++++++++++++++++
5 files changed, 61 insertions(+)
Makeconfig | 4 ++++
1 file changed, 4 insertions(+)
diff --git b/Makeconfig a/Makeconfig
index 760f14e92f..0aa5fb0099 100644
--- b/Makeconfig
+++ a/Makeconfig
@@ -362,6 +362,15 @@ relro-LDFLAGS = -Wl,-z,relro
diff --git a/Makeconfig b/Makeconfig
index 77d7fd14df..2ae67c4beb 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -378,6 +378,10 @@ relro-LDFLAGS = -Wl,-z,relro
LDFLAGS.so += $(relro-LDFLAGS)
LDFLAGS-rtld += $(relro-LDFLAGS)
+ifeq (yes,$(have-hash-style))
+# For the time being we unconditionally use 'both'. At some time we
+# should declare statically linked code as 'out of luck' and compile
+# with --hash-style=gnu only.
+hashstyle-LDFLAGS = -Wl,--hash-style=both
+LDFLAGS.so += $(hashstyle-LDFLAGS)
+LDFLAGS-rtld += $(hashstyle-LDFLAGS)
+endif
+
ifeq (no,$(build-pie-default))
pie-default = $(no-pie-ccflag)
else # build-pie-default
diff --git b/Makerules a/Makerules
index 354528b8c7..428464f092 100644
--- b/Makerules
+++ a/Makerules
@@ -557,6 +557,13 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
-Wl,--verbose 2>/dev/null | \
sed > $@T \
-e '/^=========/,/^=========/!d;/^=========/d' \
+ $(if $(filter yes,$(have-hash-style)), \
+ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
+ -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \
+ -e '/DATA_SEGMENT_ALIGN/{H;g}' \
+ , \
+ -e 's/^.*\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
+ ) \
-e 's/^.*\*(\.dynbss).*$$/& \
PROVIDE(__start___libc_freeres_ptrs = .); \
*(__libc_freeres_ptrs) \
diff --git b/config.make.in a/config.make.in
index fff4c78dd0..bf728c71c0 100644
--- b/config.make.in
+++ a/config.make.in
@@ -70,6 +70,7 @@ have-libcap = @have_libcap@
have-cc-with-libunwind = @libc_cv_cc_with_libunwind@
fno-unit-at-a-time = @fno_unit_at_a_time@
bind-now = @bindnow@
+have-hash-style = @libc_cv_hashstyle@
use-default-link = @use_default_link@
have-cxx-thread_local = @libc_cv_cxx_thread_local@
have-loop-to-function = @libc_cv_cc_loop_to_function@
diff --git b/configure a/configure
index 716dc041b6..5a730dc5fc 100755
--- b/configure
+++ a/configure
@@ -622,6 +622,7 @@ libc_cv_cc_nofma
libc_cv_mtls_dialect_gnu2
fno_unit_at_a_time
libc_cv_has_glob_dat
+libc_cv_hashstyle
libc_cv_fpie
libc_cv_z_execstack
ASFLAGS_config
@@ -6193,6 +6194,33 @@ $as_echo "$libc_cv_fpie" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --hash-style option" >&5
+$as_echo_n "checking for --hash-style option... " >&6; }
+if ${libc_cv_hashstyle+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat > conftest.c <<EOF
+int _start (void) { return 42; }
+EOF
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
+ -fPIC -shared -o conftest.so conftest.c
+ -Wl,--hash-style=both -nostdlib 1>&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+then
+ libc_cv_hashstyle=yes
+else
+ libc_cv_hashstyle=no
+fi
+rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_hashstyle" >&5
+$as_echo "$libc_cv_hashstyle" >&6; }
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLOB_DAT reloc" >&5
$as_echo_n "checking for GLOB_DAT reloc... " >&6; }
if ${libc_cv_has_glob_dat+:} false; then :
diff --git b/configure.ac a/configure.ac
index d08ad4d64e..a045f6608e 100644
--- b/configure.ac
+++ a/configure.ac
@@ -1360,6 +1360,22 @@ LIBC_TRY_CC_OPTION([-fpie], [libc_cv_fpie=yes], [libc_cv_fpie=no])
AC_SUBST(libc_cv_fpie)
+AC_CACHE_CHECK(for --hash-style option,
+ libc_cv_hashstyle, [dnl
+cat > conftest.c <<EOF
+int _start (void) { return 42; }
+EOF
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
+ -fPIC -shared -o conftest.so conftest.c
+ -Wl,--hash-style=both -nostdlib 1>&AS_MESSAGE_LOG_FD])
+then
+ libc_cv_hashstyle=yes
+else
+ libc_cv_hashstyle=no
+fi
+rm -f conftest*])
+AC_SUBST(libc_cv_hashstyle)
+
AC_CACHE_CHECK(for GLOB_DAT reloc,
libc_cv_has_glob_dat, [dnl
cat > conftest.c <<EOF
# Linker options to enable and disable DT_RELR.
ifeq ($(have-dt-relr),yes)
dt-relr-ldflag = -Wl,-z,pack-relative-relocs
--
2.37.1
2.41.0

View File

@@ -3,11 +3,13 @@
name=glibc
version=2.38
release=1
release=2
backup="etc/locales"
source="https://ftp.gnu.org/gnu/$name/$name-$version.tar.xz
genlocales nsswitch.conf ld.so.conf
PATCH-nscd-Do-not-rebuild-getaddrinfo-bug-30709.patch"
reenable_DT_HASH.patch
fix-malloc-p1.patch
fix-malloc-p2.patch"
nostrip="lib.*/ld-.*\.so$
lib.*/libc-.*\.so$
lib.*/libpthread-.*\.so$
@@ -16,7 +18,9 @@ nostrip="lib.*/ld-.*\.so$
build() {
cd $name-$version
patch -Np1 -i $SRC/PATCH-nscd-Do-not-rebuild-getaddrinfo-bug-30709.patch
patch -Np1 -i $SRC/reenable_DT_HASH.patch
patch -Np1 -i $SRC/fix-malloc-p1.patch
patch -Np1 -i $SRC/fix-malloc-p2.patch
_configure_flag="
--prefix=/usr \

View File

@@ -1,7 +0,0 @@
6d9f4595a014ca49b2620becc53fce26 fix-malloc-p1.patch
09f61068c014da1c397409e443b184dd fix-malloc-p2.patch
cabf312a0adc98de9d52a411b2c14baa genlocales
778cce0ea6bf7f84ca8caacf4a01f45b glibc-2.38.tar.xz
f87bc003e02b07545914e38ffd7eede4 ld.so.conf
f02419b094ba90195ca922b34a86b0af nsswitch.conf
c7a48a90a1948b5302807856b6ef884a reenable_DT_HASH.patch

File diff suppressed because it is too large Load Diff

View File

@@ -1,30 +0,0 @@
#!/bin/sh
set -e
if [ $(id -u) != 0 ]; then
echo "ERROR: $(basename $0) need run as root!"
exit 1
fi
LOCALES=/etc/locales
rm -f /usr/lib/locale/locale-archive
mkdir -p /usr/lib/locale
while read locale charset; do
case $locale in
""|\#*) continue ;;
esac
if [ -n $locale -a -n $charset ]; then
if [ -f /usr/share/i18n/locales/$locale ]; then
input=$locale
else
input=$(echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/')
fi
echo "Generate locale $locale.$charset..."
localedef -i $input -f $charset $locale
fi
done < $LOCALES
exit 0

View File

@@ -1,5 +0,0 @@
# /etc/ld.so.conf
# Dynamic linker/loader configuration.
# Add an include directory
include /etc/ld.so.conf.d/*.conf

View File

@@ -1,13 +0,0 @@
# /etc/nsswitch.conf
passwd: files
group: files
shadow: files
hosts: files dns
networks: files
protocols: files
services: files
ethers: files
rpc: files

View File

@@ -1,28 +0,0 @@
From 31915e55f9c34f6137ab1c5ac002375a2d5d4589 Mon Sep 17 00:00:00 2001
From: Frederik Schwan <frederik.schwan@linux.com>
Date: Fri, 4 Aug 2023 15:19:57 +0200
Subject: [PATCH] force --hash-style=both to keep compatibility with old niche
software
---
Makeconfig | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Makeconfig b/Makeconfig
index 77d7fd14df..2ae67c4beb 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -378,6 +378,10 @@ relro-LDFLAGS = -Wl,-z,relro
LDFLAGS.so += $(relro-LDFLAGS)
LDFLAGS-rtld += $(relro-LDFLAGS)
+hashstyle-LDFLAGS = -Wl,--hash-style=both
+LDFLAGS.so += $(hashstyle-LDFLAGS)
+LDFLAGS-rtld += $(hashstyle-LDFLAGS)
+
# Linker options to enable and disable DT_RELR.
ifeq ($(have-dt-relr),yes)
dt-relr-ldflag = -Wl,-z,pack-relative-relocs
--
2.41.0

View File

@@ -1,103 +0,0 @@
# description : The main C library
# depends : linux-api-headers python3 tzdata
name=glibc
version=2.38
release=2
backup="etc/locales"
source="https://ftp.gnu.org/gnu/$name/$name-$version.tar.xz
genlocales nsswitch.conf ld.so.conf
reenable_DT_HASH.patch
fix-malloc-p1.patch
fix-malloc-p2.patch"
nostrip="lib.*/ld-.*\.so$
lib.*/libc-.*\.so$
lib.*/libpthread-.*\.so$
lib.*/libthread_db-.*\.so$"
build() {
cd $name-$version
patch -Np1 -i $SRC/reenable_DT_HASH.patch
patch -Np1 -i $SRC/fix-malloc-p1.patch
patch -Np1 -i $SRC/fix-malloc-p2.patch
_configure_flag="
--prefix=/usr \
--with-headers=/usr/include \
--disable-profile \
--disable-werror \
--enable-crypt \
--enable-bind-now \
--enable-kernel=4.14 \
--enable-stack-protector=strong \
--enable-multi-arch \
libc_cv_include_x86_isa_level=no"
ln -sv lib $PKG/lib64
# 64bit
mkdir -v build
cd build
../configure \
--libexecdir=/usr/lib \
libc_cv_slibdir=/lib \
${_configure_flag}
make
sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile
make install_root=$PKG install
# pregenerate C.UTF-8 locale until it is built into glibc
# (https://sourceware.org/glibc/wiki/Proposals/C.UTF-8)
elf/ld.so --library-path "$PWD" locale/localedef -c -f ../localedata/charmaps/UTF-8 -i ../localedata/locales/C ../C.UTF-8/
install -d $PKG/var/cache/nscd
install -d $PKG/usr/lib/locale
install -d $PKG/etc/ld.so.conf.d
install -m644 ../nscd/nscd.conf $PKG/etc
install -m644 $SRC/ld.so.conf $PKG/etc
install -m644 $SRC/nsswitch.conf $PKG/etc
# supported locales
sed -e '1,3d' -e 's|/| |g' -e 's|\\| |g' -e 's|^|#|g' \
$SRC/glibc-$version/localedata/SUPPORTED >> $PKG/etc/locales
# locales generator
install -Dm755 $SRC/genlocales $PKG/usr/bin/genlocales
cp -r ../C.UTF-8 $PKG/usr/lib/locale
sed -i '/#C\.UTF-8 /d' $PKG/etc/locales
# shipped with tzdata
rm $PKG/usr/bin/zdump
rm $PKG/usr/sbin/zic
rm $PKG/usr/bin/tzselect
# 32bit
mkdir -v ../build32
cd ../build32
export CC="gcc -m32 -mstackrealign"
export CXX="g++ -m32 -mstackrealign"
export CFLAGS="$CFLAGS -Wno-error=parentheses"
../configure \
--libdir=/usr/lib32 \
--libexecdir=/usr/lib32 \
libc_cv_slibdir=/usr/lib32 \
i686-pc-linux-gnu \
${_configure_flag}
make
make install_root=$PWD/DESTDIR install
install -dm755 $PKG/usr/lib32
install -dm755 $PKG/usr/include/gnu/
cp -Rv DESTDIR/usr/lib32/* $PKG/usr/lib32/
install -m644 DESTDIR/usr/include/gnu/lib-names-32.h \
DESTDIR/usr/include/gnu/stubs-32.h \
$PKG/usr/include/gnu/
ln -sv ../usr/lib32/ld-linux.so.2 $PKG/lib/ld-linux.so.2
ln -sv ../lib/locale $PKG/usr/lib32/locale
echo "/usr/lib32" > $PKG/etc/ld.so.conf.d/lib32.conf
}