Resolves:rh#738256:- redhat-lsb fails to build on ARM
This commit is contained in:
parent
1952ce74b5
commit
290d7c034e
|
@ -0,0 +1,45 @@
|
||||||
|
--- 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 \
|
|
@ -1,6 +1,6 @@
|
||||||
--- redhat_lsb_trigger.c.jj 2008-04-16 19:50:14.000000000 +0200
|
--- redhat_lsb_trigger.c.triggerfix 2008-04-16 18:50:14.000000000 +0100
|
||||||
+++ redhat_lsb_trigger.c 2009-10-26 19:51:12.886058784 +0100
|
+++ redhat_lsb_trigger.c 2011-09-14 11:50:42.563080000 +0100
|
||||||
@@ -423,10 +423,76 @@ is_ia64 (void)
|
@@ -423,10 +423,76 @@
|
||||||
#define is_ia64() 0
|
#define is_ia64() 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -79,10 +79,18 @@
|
||||||
INTERNAL_SYSCALL_DECL (err);
|
INTERNAL_SYSCALL_DECL (err);
|
||||||
char lsbsover[] = LSBSOVER;
|
char lsbsover[] = LSBSOVER;
|
||||||
char *LSBVER, *p = lsbsover;
|
char *LSBVER, *p = lsbsover;
|
||||||
@@ -455,11 +521,18 @@ void __libc_csu_fini (void) { }
|
@@ -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; }
|
pid_t __fork (void) { return -1; }
|
||||||
char thr_buf[65536];
|
char thr_buf[65536];
|
||||||
|
|
||||||
|
-#ifndef __powerpc__
|
||||||
+void
|
+void
|
||||||
+__attribute__ ((noreturn))
|
+__attribute__ ((noreturn))
|
||||||
+__stack_chk_fail (void)
|
+__stack_chk_fail (void)
|
||||||
|
@ -92,16 +100,28 @@
|
||||||
+ INTERNAL_SYSCALL (exit, err, 1, 1);
|
+ INTERNAL_SYSCALL (exit, err, 1, 1);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
#ifndef __powerpc__
|
+#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':
|
-/* /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' */
|
- * * (.opd+0x10): multiple definition of `__libc_start_main' */
|
||||||
-int ___libc_start_main (int (*main) (int argc, char **argv),
|
int ___libc_start_main (int (*main) (int argc, char **argv),
|
||||||
+int __libc_start_main (int (*main) (int argc, char **argv),
|
|
||||||
int argc, char **argv,
|
int argc, char **argv,
|
||||||
void (*init) (void), void (*fini) (void),
|
void (*init) (void), void (*fini) (void),
|
||||||
void (*rtld_fini) (void), void * stack_end)
|
@@ -472,9 +561,7 @@
|
||||||
@@ -472,9 +545,7 @@ struct startup_info
|
|
||||||
void (*fini) (void);
|
void (*fini) (void);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -49,13 +49,14 @@
|
||||||
Summary: LSB base libraries support for Red Hat Enterprise Linux
|
Summary: LSB base libraries support for Red Hat Enterprise Linux
|
||||||
Name: redhat-lsb
|
Name: redhat-lsb
|
||||||
Version: 4.0
|
Version: 4.0
|
||||||
Release: 8%{?dist}
|
Release: 9%{?dist}
|
||||||
URL: http://www.linuxfoundation.org/collaborate/workgroups/lsb
|
URL: http://www.linuxfoundation.org/collaborate/workgroups/lsb
|
||||||
Source0: %{name}-%{version}-%{srcrelease}.tar.bz2
|
Source0: %{name}-%{version}-%{srcrelease}.tar.bz2
|
||||||
#Source1: http://prdownloads.sourceforge.net/lsb/lsb-release-%{upstreamlsbrelver}.tar.gz
|
#Source1: http://prdownloads.sourceforge.net/lsb/lsb-release-%{upstreamlsbrelver}.tar.gz
|
||||||
Patch0: lsb-release-3.1-update-init-functions.patch
|
Patch0: lsb-release-3.1-update-init-functions.patch
|
||||||
Patch1: redhat-lsb-lsb_start_daemon-fix.patch
|
Patch1: redhat-lsb-lsb_start_daemon-fix.patch
|
||||||
Patch2: redhat-lsb-trigger.patch
|
Patch2: redhat-lsb-trigger.patch
|
||||||
|
Patch3: redhat-lsb-arm.patch
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
BuildRequires: glibc-static
|
BuildRequires: glibc-static
|
||||||
|
@ -86,7 +87,7 @@ Provides: lsb = %{version}
|
||||||
Provides: lsb-core-%{archname} = %{version}
|
Provides: lsb-core-%{archname} = %{version}
|
||||||
Provides: lsb-core-noarch = %{version}
|
Provides: lsb-core-noarch = %{version}
|
||||||
|
|
||||||
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x
|
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm}
|
||||||
|
|
||||||
%ifarch %{ix86}
|
%ifarch %{ix86}
|
||||||
# archLSB IA32 Base Libraries
|
# archLSB IA32 Base Libraries
|
||||||
|
@ -619,6 +620,7 @@ The Linux Standard Base (LSB) Printing Specifications define components that are
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p0 -b .triggerfix
|
%patch2 -p0 -b .triggerfix
|
||||||
|
%patch3 -p1 -b .arm
|
||||||
|
|
||||||
%build
|
%build
|
||||||
cd lsb-release-%{upstreamlsbrelver}
|
cd lsb-release-%{upstreamlsbrelver}
|
||||||
|
@ -729,6 +731,9 @@ fi
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Nov 30 2011 Parag <pnemade AT redhat DOT com> - 4.0-9
|
||||||
|
- Resolves:rh#738256:- redhat-lsb fails to build on ARM
|
||||||
|
|
||||||
* Thu Oct 13 2011 Parag <pnemade AT redhat DOT com> - 4.0-8
|
* Thu Oct 13 2011 Parag <pnemade AT redhat DOT com> - 4.0-8
|
||||||
- Resolves:rh#745100: Add requires: perl-Digest-MD5
|
- Resolves:rh#745100: Add requires: perl-Digest-MD5
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue