Include arm code like other architectures. Pick up the macro definitions from: glibc-ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h
Signed-off-by: Kedar Sovani kedars@marvell.com --- redhat-lsb-3.2-1-arm.patch | 45 +++++++++++++++++++++++++++++++++++++++++ redhat-lsb.spec | 48 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 redhat-lsb-3.2-1-arm.patch
diff --git a/redhat-lsb-3.2-1-arm.patch b/redhat-lsb-3.2-1-arm.patch new file mode 100644 index 0000000..42fcea8 --- /dev/null +++ b/redhat-lsb-3.2-1-arm.patch @@ -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 \ diff --git a/redhat-lsb.spec b/redhat-lsb.spec index 77656e3..b929587 100644 --- a/redhat-lsb.spec +++ b/redhat-lsb.spec @@ -36,6 +36,11 @@ %define lsbldso ld-lsb-x86-64.so %endif
+%ifarch %{arm} +%define ldso ld-linux.so.3 +%define lsbldso ld-lsb-arm.so +%endif + %ifarch ia64 ppc64 s390x x86_64 %define qual ()(64bit) %else @@ -49,10 +54,11 @@ Summary: LSB support for Red Hat Linux Name: redhat-lsb Version: 3.2 -Release: 2.fc10 +Release: 2.fc10.fa1 URL: http://www.linuxfoundation.org/ Source0: %{name}-%{version}-%{srcrelease}.tar.bz2 Patch0: lsb-release-3.1-update-init-functions.patch +Patch1: redhat-lsb-3.2-1-arm.patch License: GPLv2 Group: System Environment/Base BuildRoot: %{_tmppath}/%{name}-root @@ -80,12 +86,15 @@ Provides: lsb = %{version} %ifarch x86_64 %define archname amd64 %endif +%ifarch %{arm} +%define archname arm +%endif Provides: lsb-core-%{archname} = %{version} Provides: lsb-graphics-%{archname} = %{version} Provides: lsb-core-noarch = %{version} Provides: lsb-graphics-noarch = %{version}
-ExclusiveArch: i386 ia64 x86_64 ppc ppc64 s390 s390x +ExclusiveArch: i386 ia64 x86_64 ppc ppc64 s390 s390x %{arm}
%ifarch %{ix86} # archLSB IA32 Base Libraries @@ -325,6 +334,40 @@ Requires: libutil.so.1()(64bit) Requires: libz.so.1()(64bit) %endif
+%ifarch %{arm} +# archLSB ARM Base Libraries +Requires: libatk-1.0.so.0 +Requires: libc.so.6 +Requires: libcrypt.so.1 +Requires: libdl.so.2 +Requires: libgcc_s.so.1 +Requires: libgdk-x11-2.0.so.0 +Requires: libgdk_pixbuf-2.0.so.0 +Requires: libgdk_pixbuf_xlib-2.0.so.0 +Requires: libglib-2.0.so.0 +Requires: libgmodule-2.0.so.0 +Requires: libgobject-2.0.so.0 +Requires: libgthread-2.0.so.0 +Requires: libgtk-x11-2.0.so.0 +Requires: libm.so.6 +Requires: libncurses.so.5 +Requires: libpango-1.0.so.0 +Requires: libpangoft2-1.0.so.0 +Requires: libpangoxft-1.0.so.0 +Requires: libpthread.so.0 +Requires: libqt-mt.so.3 +Requires: libQtCore.so.4 +Requires: libQtGui.so.4 +Requires: libQtNetwork.so.4 +Requires: libQtOpenGL.so.4 +Requires: libQtSql.so.4 +Requires: libQtSvg.so.4 +Requires: libQtXml.so.4 +Requires: libstdc++.so.6 +Requires: libutil.so.1 +Requires: libz.so.1 +%endif + # gLSB Base/Utility/Stdc++/Graphics Libraries Requires: libasound.so.2%{qual} Requires: libatk-1.0.so.0%{qual} @@ -525,6 +568,7 @@ installed on the system. %prep %setup -q %patch0 -p1 +%patch1 -p1
%build cd lsb-release-%{upstreamlsbrelver}
On Tue, Feb 03, 2009 at 03:44:45PM +0530, Kedar Sovani wrote:
Include arm code like other architectures. Pick up the macro definitions from: glibc-ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h
There is no ARM version of the LSB, is there? (Or doesn't that matter here?)
On Tue, 2009-02-03 at 11:20 +0100, Lennert Buytenhek wrote:
On Tue, Feb 03, 2009 at 03:44:45PM +0530, Kedar Sovani wrote:
Include arm code like other architectures. Pick up the macro definitions from: glibc-ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h
There is no ARM version of the LSB, is there? (Or doesn't that matter here?)
Hmm.. I didn't look at that.
In which case, what are our alternatives for this package? Make this into a dummy rpm with only the "Provides" tags?
Kedar.
On Tue, Feb 03, 2009 at 04:00:03PM +0530, Kedar Sovani wrote:
Include arm code like other architectures. Pick up the macro definitions from: glibc-ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h
There is no ARM version of the LSB, is there? (Or doesn't that matter here?)
Hmm.. I didn't look at that.
In which case, what are our alternatives for this package? Make this into a dummy rpm with only the "Provides" tags?
Which packages require redhat-lsb?
On Tue, 2009-02-03 at 11:31 +0100, Lennert Buytenhek wrote:
On Tue, Feb 03, 2009 at 04:00:03PM +0530, Kedar Sovani wrote:
Include arm code like other architectures. Pick up the macro definitions from: glibc-ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h
There is no ARM version of the LSB, is there? (Or doesn't that matter here?)
Hmm.. I didn't look at that.
In which case, what are our alternatives for this package? Make this into a dummy rpm with only the "Provides" tags?
Which packages require redhat-lsb?
I queries the F10 x86 repository. Only two packages depend on redhat-lsb 1. tog-pegasus-2:2.7.1-2.fc10.i386 2. bcfg2-server-0:0.9.5.7-1.fc9.noarch
I came across it like this: lvm2 --> cman --> clustermon --> tog-pegasus --> redhat-lsb
I guess I'll break clustermon's build dependency on tog-pegasus...
Kedar.
On Tue, Feb 03, 2009 at 04:11:02PM +0530, Kedar Sovani wrote:
Include arm code like other architectures. Pick up the macro definitions from: glibc-ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h
There is no ARM version of the LSB, is there? (Or doesn't that matter here?)
Hmm.. I didn't look at that.
In which case, what are our alternatives for this package? Make this into a dummy rpm with only the "Provides" tags?
Which packages require redhat-lsb?
I queries the F10 x86 repository. Only two packages depend on redhat-lsb
- tog-pegasus-2:2.7.1-2.fc10.i386
- bcfg2-server-0:0.9.5.7-1.fc9.noarch
I came across it like this: lvm2 --> cman --> clustermon --> tog-pegasus --> redhat-lsb
I guess I'll break clustermon's build dependency on tog-pegasus...
Right, or check to make sure that tog-pegasus really needs that dependency.