commit
7a166b502e
@ -0,0 +1 @@
|
||||
SOURCES/redhat-lsb-4.1-1.tar.bz2
|
@ -0,0 +1 @@
|
||||
475191e59e72fb72f843ac78f53d04e555af8b5e SOURCES/redhat-lsb-4.1-1.tar.bz2
|
@ -0,0 +1,32 @@
|
||||
diff -urN redhat-lsb-3.1/init-functions redhat-lsb-3.1.mod/init-functions
|
||||
--- redhat-lsb-3.1/init-functions 2006-12-06 12:24:29.000000000 +1000
|
||||
+++ redhat-lsb-3.1.mod/init-functions 2007-06-26 15:41:35.000000000 +1000
|
||||
@@ -1,6 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
# LSB initscript functions, as defined in the LSB Spec 1.1.0
|
||||
+#
|
||||
+# Lawrence Lim <llim@redhat.com> - Tue, 26 June 2007
|
||||
+# Updated to the latest LSB 3.1 spec
|
||||
+# http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic_lines.txt
|
||||
|
||||
start_daemon () {
|
||||
/etc/redhat-lsb/lsb_start_daemon "$@"
|
||||
@@ -10,7 +14,7 @@
|
||||
/etc/redhat-lsb/lsb_killproc "$@"
|
||||
}
|
||||
|
||||
-pidofprof () {
|
||||
+pidofproc () {
|
||||
/etc/redhat-lsb/lsb_pidofproc "$@"
|
||||
}
|
||||
|
||||
@@ -22,7 +26,7 @@
|
||||
/etc/redhat-lsb/lsb_log_message failure "$@"
|
||||
}
|
||||
|
||||
-log_warning_message () {
|
||||
+log_warning_msg () {
|
||||
/etc/redhat-lsb/lsb_log_message warning "$@"
|
||||
}
|
||||
|
@ -0,0 +1,131 @@
|
||||
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,
|
@ -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 \
|
@ -0,0 +1,43 @@
|
||||
diff -up redhat-lsb-3.1/lsb_start_daemon.orig redhat-lsb-3.1/lsb_start_daemon
|
||||
--- redhat-lsb-3.1/lsb_start_daemon.orig 2009-05-15 11:20:17.000000000 -0400
|
||||
+++ redhat-lsb-3.1/lsb_start_daemon 2009-05-15 11:33:03.000000000 -0400
|
||||
@@ -4,6 +4,9 @@
|
||||
|
||||
nice=
|
||||
force=
|
||||
+pidfile=
|
||||
+user=
|
||||
+check=
|
||||
RETVAL=
|
||||
while [ "$1" != "${1##[-+]}" ]; do
|
||||
case $1 in
|
||||
@@ -15,7 +18,28 @@ while [ "$1" != "${1##[-+]}" ]; do
|
||||
nice=$2
|
||||
shift 2
|
||||
;;
|
||||
+ -p)
|
||||
+ pidfile="--pidfile $2"
|
||||
+ shift 2
|
||||
+ ;;
|
||||
+ -u)
|
||||
+ user="--user $2"
|
||||
+ shift 2
|
||||
+ ;;
|
||||
+ -c)
|
||||
+ check="--check $2"
|
||||
+ shift 2
|
||||
+ ;;
|
||||
+ *)
|
||||
+ echo "Unknown Option $1"
|
||||
+ echo "Options are:"
|
||||
+ echo "-f"
|
||||
+ echo "-p {pidfile}"
|
||||
+ echo "-n [+/-nicelevel]"
|
||||
+ echo "-u {user}"
|
||||
+ echo "-c {base}"
|
||||
+ exit 1;;
|
||||
esac
|
||||
done
|
||||
-LSB=LSB-1.1 daemon ${force:-} ${nice:-} $*
|
||||
+LSB=LSB-1.1 daemon ${force:-} ${nice:-} ${pidfile:-} ${user:-} ${check:-} $*
|
||||
exit $?
|
@ -0,0 +1,134 @@
|
||||
--- 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)
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue