diff --git a/redhat-lsb-aarch64.patch b/redhat-lsb-aarch64.patch deleted file mode 100644 index 3701d95..0000000 --- a/redhat-lsb-aarch64.patch +++ /dev/null @@ -1,131 +0,0 @@ -diff --git a/redhat_lsb_trigger.c b/redhat_lsb_trigger.c -index 76db260..f76e5a5 100644 ---- a/redhat_lsb_trigger.c -+++ b/redhat_lsb_trigger.c -@@ -424,6 +424,102 @@ register void *__thread_self __asm ("g7"); - : inline_syscall_clobbers, "$20", "$21"); \ - _sc_ret = _sc_0, _sc_err = _sc_19; \ - } -+#elif defined __aarch64__ -+#undef SYS_ify -+#define SYS_ify(syscall_name) (__NR_##syscall_name) -+ -+# undef INLINE_SYSCALL -+# define INLINE_SYSCALL(name, nr, args...) \ -+ ({ unsigned long _sys_result = INTERNAL_SYSCALL (name, , nr, args); \ -+ if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_sys_result, ), 0))\ -+ { \ -+ __set_errno (INTERNAL_SYSCALL_ERRNO (_sys_result, )); \ -+ _sys_result = (unsigned long) -1; \ -+ } \ -+ (long) _sys_result; }) -+ -+# undef INTERNAL_SYSCALL_DECL -+# define INTERNAL_SYSCALL_DECL(err) do { } while (0) -+ -+# undef INTERNAL_SYSCALL_RAW -+# define INTERNAL_SYSCALL_RAW(name, err, nr, args...) \ -+ ({ unsigned long _sys_result; \ -+ { \ -+ LOAD_ARGS_##nr (args) \ -+ register long _x8 asm ("x8") = (name); \ -+ asm volatile ("svc 0 // syscall " # name \ -+ : "+r" (_x0), "+r" (_x8) \ -+ : ASM_ARGS_##nr \ -+ : "memory", CLOBBER_ARGS_##nr); \ -+ _sys_result = _x0; \ -+ } \ -+ (long) _sys_result; }) -+ -+# undef INTERNAL_SYSCALL -+# define INTERNAL_SYSCALL(name, err, nr, args...) \ -+ INTERNAL_SYSCALL_RAW(SYS_ify(name), err, nr, args) -+ -+# undef INTERNAL_SYSCALL_ERROR_P -+# define INTERNAL_SYSCALL_ERROR_P(val, err) \ -+ ((unsigned long) (val) >= (unsigned long) -4095) -+ -+# undef INTERNAL_SYSCALL_ERRNO -+# define INTERNAL_SYSCALL_ERRNO(val, err) (-(val)) -+ -+# define CLOBBER_ARGS_0 CLOBBER_ARGS_1 -+# define CLOBBER_ARGS_1 "x1", CLOBBER_ARGS_2 -+# define CLOBBER_ARGS_2 "x2", CLOBBER_ARGS_3 -+# define CLOBBER_ARGS_3 "x3", CLOBBER_ARGS_4 -+# define CLOBBER_ARGS_4 "x4", CLOBBER_ARGS_5 -+# define CLOBBER_ARGS_5 "x5", CLOBBER_ARGS_6 -+# define CLOBBER_ARGS_6 "x6", CLOBBER_ARGS_7 -+# define CLOBBER_ARGS_7 \ -+ "x7", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18" -+ -+# define LOAD_ARGS_0() \ -+ register long _x0 asm ("x0"); -+ -+# define ASM_ARGS_0 -+# define LOAD_ARGS_1(x0) \ -+ long _x0tmp = (long) (x0); \ -+ LOAD_ARGS_0 () \ -+ _x0 = _x0tmp; -+# define ASM_ARGS_1 "r" (_x0) -+# define LOAD_ARGS_2(x0, x1) \ -+ long _x1tmp = (long) (x1); \ -+ LOAD_ARGS_1 (x0) \ -+ register long _x1 asm ("x1") = _x1tmp; -+# define ASM_ARGS_2 ASM_ARGS_1, "r" (_x1) -+# define LOAD_ARGS_3(x0, x1, x2) \ -+ long _x2tmp = (long) (x2); \ -+ LOAD_ARGS_2 (x0, x1) \ -+ register long _x2 asm ("x2") = _x2tmp; -+# define ASM_ARGS_3 ASM_ARGS_2, "r" (_x2) -+# define LOAD_ARGS_4(x0, x1, x2, x3) \ -+ long _x3tmp = (long) (x3); \ -+ LOAD_ARGS_3 (x0, x1, x2) \ -+ register long _x3 asm ("x3") = _x3tmp; -+# define ASM_ARGS_4 ASM_ARGS_3, "r" (_x3) -+# define LOAD_ARGS_5(x0, x1, x2, x3, x4) \ -+ long _x4tmp = (long) (x4); \ -+ LOAD_ARGS_4 (x0, x1, x2, x3) \ -+ register long _x4 asm ("x4") = _x4tmp; -+# define ASM_ARGS_5 ASM_ARGS_4, "r" (_x4) -+# define LOAD_ARGS_6(x0, x1, x2, x3, x4, x5) \ -+ long _x5tmp = (long) (x5); \ -+ LOAD_ARGS_5 (x0, x1, x2, x3, x4) \ -+ register long _x5 asm ("x5") = _x5tmp; -+# define ASM_ARGS_6 ASM_ARGS_5, "r" (_x5) -+# define LOAD_ARGS_7(x0, x1, x2, x3, x4, x5, x6)\ -+ long _x6tmp = (long) (x6); \ -+ LOAD_ARGS_6 (x0, x1, x2, x3, x4, x5) \ -+ register long _x6 asm ("x6") = _x6tmp; -+# define ASM_ARGS_7 ASM_ARGS_6, "r" (_x6) -+ -+# undef INTERNAL_SYSCALL_NCS -+# define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \ -+ INTERNAL_SYSCALL_RAW (number, err, nr, args) -+ - #endif - - #ifdef __i386__ -@@ -539,10 +635,14 @@ int main (int argc, char **argv) - p = mempcpy (p, LSBLDSO, sizeof LSBLDSO - 1); - *p++ = '.'; - strcpy (p, LSBVER); -+#if defined(__NR_symlink) - if (is_ia64 ()) - INTERNAL_SYSCALL (symlink, err, 2, "/emul/ia32-linux/lib/" LDSO, buf); - else - INTERNAL_SYSCALL (symlink, err, 2, LDSO, buf); -+#elif defined(__NR_symlinkat) -+ INTERNAL_SYSCALL (symlinkat, err, 3, AT_FDCWD, LDSO, buf); -+#endif - p = NULL; - } - INTERNAL_SYSCALL (exit, err, 1, 0); -@@ -682,7 +682,7 @@ int __libc_start_main (int argc, char **argv, char **ev, - void *auxvec, void (*rtld_fini) (void), - struct startup_info *stinfo, - char **stack_on_entry) --#elif defined __arm__ -+#elif defined __arm__ || defined __aarch64__ - - int ___libc_start_main (int (*main) (int argc, char **argv), - int argc, char **argv, diff --git a/redhat-lsb-arm.patch b/redhat-lsb-arm.patch deleted file mode 100644 index 42fcea8..0000000 --- a/redhat-lsb-arm.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- redhat-lsb-3.2.orig/redhat_lsb_trigger.c 2008-04-16 13:50:14.000000000 -0400 -+++ redhat-lsb-3.2/redhat_lsb_trigger.c 2009-02-03 04:39:06.000000000 -0500 -@@ -223,6 +223,42 @@ register void *__thread_self __asm ("g7" - # define ASMFMT_1 , "0" (gpr2) - # define ASMFMT_2 , "0" (gpr2), "d" (gpr3) - # define ASMFMT_3 , "0" (gpr2), "d" (gpr3), "d" (gpr4) -+#elif defined __arm__ -+# if defined (__ARM_EABI__) -+#undef INTERNAL_SYSCALL_DECL -+#define INTERNAL_SYSCALL_DECL(err) do { } while (0) -+#undef INTERNAL_SYSCALL_RAW -+#define INTERNAL_SYSCALL_RAW(name, err, nr, args...) \ -+ ({ \ -+ register int _a1 asm ("r0"), _nr asm ("r7"); \ -+ LOAD_ARGS_##nr (args) \ -+ _nr = name; \ -+ asm volatile ("swi 0x0 @ syscall " #name \ -+ : "=r" (_a1) \ -+ : "r" (_nr) ASM_ARGS_##nr \ -+ : "memory"); \ -+ _a1; }) -+ -+#undef INTERNAL_SYSCALL -+#define INTERNAL_SYSCALL(name, err, nr, args...) \ -+ INTERNAL_SYSCALL_RAW(SYS_ify(name), err, nr, args) -+ -+#define LOAD_ARGS_0() -+#define ASM_ARGS_0 -+#define LOAD_ARGS_1(a1) \ -+ int _a1tmp = (int) (a1); \ -+ LOAD_ARGS_0 () \ -+ _a1 = _a1tmp; -+#define ASM_ARGS_1 ASM_ARGS_0, "r" (_a1) -+#define LOAD_ARGS_2(a1, a2) \ -+ int _a2tmp = (int) (a2); \ -+ LOAD_ARGS_1 (a1) \ -+ register int _a2 asm ("a2") = _a2tmp; -+#define ASM_ARGS_2 ASM_ARGS_1, "r" (_a2) -+#undef SYS_ify -+#define SWI_BASE (0x900000) -+#define SYS_ify(syscall_name) (__NR_##syscall_name) -+#endif - #elif defined __sparc__ - # ifndef __arch64__ - # define __INTERNAL_SYSCALL_STRING \ diff --git a/redhat-lsb-trigger.patch b/redhat-lsb-trigger.patch deleted file mode 100644 index c2bab3c..0000000 --- a/redhat-lsb-trigger.patch +++ /dev/null @@ -1,134 +0,0 @@ ---- redhat_lsb_trigger.c.triggerfix 2008-04-16 18:50:14.000000000 +0100 -+++ redhat_lsb_trigger.c 2011-09-14 11:50:42.563080000 +0100 -@@ -423,10 +423,76 @@ - #define is_ia64() 0 - #endif - -+char * -+strtok (char *p, const char *delim) -+{ -+ static char *olds; -+ const char *d; -+ char *token; -+ if (p == NULL) -+ p = olds; -+ while (*p) -+ { -+ for (d = delim; *d; d++) -+ if (*p == *d) -+ break; -+ if (!*d) -+ break; -+ p++; -+ } -+ if (!*p) -+ { -+ olds = p; -+ return NULL; -+ } -+ token = p; -+ while (*p) -+ { -+ for (d = delim; *d; d++) -+ if (*p == *d) -+ break; -+ if (*d) -+ break; -+ p++; -+ } -+ if (!*p) -+ olds = p; -+ else -+ { -+ *p = '\0'; -+ olds = p + 1; -+ } -+ return token; -+} -+ -+size_t -+strlen (const char *s) -+{ -+ const char *p; -+ for (p = s; *p; ++p); -+ return p - s; -+} -+ -+void * -+mempcpy (void *dst, const void *src, size_t n) -+{ -+ char *d = dst; -+ const char *s = src; -+ while (n--) -+ *d++ = *s++; -+ return d; -+} -+ -+char * -+strcpy (char *dst, const char *src) -+{ -+ char *ret = dst; -+ while ((*dst++ = *src++) != '\0'); -+ return ret; -+} -+ - int main (int argc, char **argv) - { --/* redhat_lsb_trigger.c:428: warning: unused variable 'ret' */ --/* long ret; */ - INTERNAL_SYSCALL_DECL (err); - char lsbsover[] = LSBSOVER; - char *LSBVER, *p = lsbsover; -@@ -450,15 +516,38 @@ - int __libc_multiple_threads __attribute__((nocommon)); - int __libc_enable_asynccancel (void) { return 0; } - void __libc_disable_asynccancel (int x) { } -+#ifndef __arm__ - void __libc_csu_init (void) { } - void __libc_csu_fini (void) { } -+#endif - pid_t __fork (void) { return -1; } - char thr_buf[65536]; - --#ifndef __powerpc__ -+void -+__attribute__ ((noreturn)) -+__stack_chk_fail (void) -+{ -+ INTERNAL_SYSCALL_DECL (err); -+ while (1) -+ INTERNAL_SYSCALL (exit, err, 1, 1); -+} -+ -+#if defined __powerpc__ -+ -+struct startup_info -+{ -+ void *sda_base; -+ int (*main) (int, char **, char **, void *); -+ int (*init) (int, char **, char **, void *); -+ void (*fini) (void); -+}; -+ -+int __libc_start_main (int argc, char **argv, char **ev, -+ void *auxvec, void (*rtld_fini) (void), -+ struct startup_info *stinfo, -+ char **stack_on_entry) -+#elif defined __arm__ - --/* /usr/lib/gcc/ppc64-redhat-linux/4.1.2/../../../../lib64/libc.a(libc-start.o): In function `__libc_start_main': -- * * (.opd+0x10): multiple definition of `__libc_start_main' */ - int ___libc_start_main (int (*main) (int argc, char **argv), - int argc, char **argv, - void (*init) (void), void (*fini) (void), -@@ -472,9 +561,7 @@ - void (*fini) (void); - }; - --/* /usr/lib/gcc/ppc64-redhat-linux/4.1.2/../../../../lib64/libc.a(libc-start.o): In function `__libc_start_main': -- * (.opd+0x10): multiple definition of `__libc_start_main' */ --int ___libc_start_main (int argc, char **argv, char **ev, -+int __libc_start_main (int argc, char **argv, char **ev, - void *auxvec, void (*rtld_fini) (void), - struct startup_info *stinfo, - char **stack_on_entry) diff --git a/redhat-lsb.spec b/redhat-lsb.spec index 55f2941..f79ae4e 100644 --- a/redhat-lsb.spec +++ b/redhat-lsb.spec @@ -59,23 +59,22 @@ # and thus leading to the FTBS. %global __brp_ldconfig %{nil} +# The packages are architecture-specific, but do not contain any ELF +# binaries with debuginfo to extract. +%undefine _enable_debug_packages + Summary: Implementation of Linux Standard Base specification Name: redhat-lsb Version: 4.1 -Release: 53%{?dist} +Release: 54%{?dist} URL: http://www.linuxfoundation.org/collaborate/workgroups/lsb Source0: https://fedorahosted.org/releases/r/e/redhat-lsb/%{name}-%{version}-%{srcrelease}.tar.bz2 Patch0: lsb-release-3.1-update-init-functions.patch Patch1: redhat-lsb-lsb_start_daemon-fix.patch -Patch2: redhat-lsb-trigger.patch -Patch3: redhat-lsb-arm.patch -Patch4: redhat-lsb-aarch64.patch License: GPLv2 BuildRequires: make -BuildRequires: glibc-static BuildRequires: perl-generators BuildRequires: perl(Getopt::Long) -BuildRequires: gcc %ifarch %{ix86} %global archname ia32 @@ -108,8 +107,6 @@ BuildRequires: gcc %global archname aarch64 %endif -ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le - Requires: redhat-lsb-core%{?_isa} = %{version}-%{release} Requires: redhat-lsb-cxx%{?_isa} = %{version}-%{release} Requires: redhat-lsb-desktop%{?_isa} = %{version}-%{release} @@ -477,9 +474,6 @@ to be on LSB conforming system. %setup -q %patch0 -p1 %patch1 -p1 -%patch2 -p0 -b .triggerfix -%patch3 -p1 -b .arm -%patch4 -p1 -b .aarch64 %build cd lsb-release-%{upstreamlsbrelver} @@ -600,25 +594,8 @@ ln -snf ../../../sbin/chkconfig $RPM_BUILD_ROOT/usr/lib/lsb/remove_initd #ln -snf /usr/share/X11/fonts $RPM_BUILD_ROOT/usr/X11R6/lib/X11/fonts #ln -snf /usr/share/X11/rgb.txt $RPM_BUILD_ROOT/usr/X11R6/lib/X11/rgb.txt -# According to https://bugzilla.redhat.com/show_bug.cgi?id=232918 , the '-static' option -# is imported against segfault error while running redhat_lsb_trigger -%ifarch %{arm} aarch64 -%{__cc} $RPM_OPT_FLAGS -Os -fno-stack-protector -o redhat_lsb_trigger{.%{_target_cpu},.c} -DLSBSOVER='"%{lsbsover}"' \ - -DLDSO='"%{ldso}"' -DLSBLDSO='"/%{_lib}/%{lsbldso}"' -D_GNU_SOURCE -%else -%{__cc} $RPM_OPT_FLAGS -Os -static -fno-stack-protector -o redhat_lsb_trigger{.%{_target_cpu},.c} -DLSBSOVER='"%{lsbsover}"' \ - -DLDSO='"%{ldso}"' -DLSBLDSO='"/%{_lib}/%{lsbldso}"' -D_GNU_SOURCE -%endif -install -p -m 700 redhat_lsb_trigger.%{_target_cpu} \ - $RPM_BUILD_ROOT%{_sbindir}/redhat_lsb_trigger.%{_target_cpu} - cp -p redhat_lsb_init $RPM_BUILD_ROOT/bin/redhat_lsb_init -%triggerpostun -- glibc -if [ -x /usr/sbin/redhat_lsb_trigger.%{_target_cpu} ]; then - /usr/sbin/redhat_lsb_trigger.%{_target_cpu} -fi - %postun submod-security -p os.remove("%{_datadir}/lsb/%{lsbrelver}/submodules") os.remove("%{_datadir}/lsb/%{lsbrelver}/modules") @@ -683,7 +660,6 @@ os.remove("%{_datadir}/lsb") /usr/lib/lsb /%{_lib}/*so* /lib/lsb* -%{_sbindir}/redhat_lsb_trigger.%{_target_cpu} %{_datadir}/lsb/%{lsbrelver}/modules/core %{_sysconfdir}/lsb-release.d/core* %{_datadir}/lsb/%{lsbrelver}/submodules/core-%{lsbrelver}-%{archname} @@ -738,6 +714,9 @@ os.remove("%{_datadir}/lsb") %changelog +* Tue May 25 2021 Florian Weimer - 4.1-54 +- Remove unnecessary redhat_lsb_trigger.* programs (#1964367) + * Tue May 25 2021 Florian Weimer - 4.1-53 - Do not call non-existing lsn program on glibc updates