[config] Merge CONFIG_SHELL selection.

This commit is contained in:
Yann E. MORIN" 2009-08-03 08:50:56 +02:00
commit 946a86fb67
19 changed files with 601 additions and 7 deletions

View File

@ -118,6 +118,13 @@ config CC_V_4_4_0
select CC_GCC_4_3_or_later
select CC_GCC_4_4_or_later
config CC_V_4_4_1
bool
prompt "4.4.1 (EXPERIMENTAL)"
depends on EXPERIMENTAL
select CC_GCC_4_3_or_later
select CC_GCC_4_4_or_later
# CT_INSERT_VERSION_ABOVE
# Don't remove above line!
endchoice
@ -155,6 +162,7 @@ config CC_VERSION
default "4.3.2" if CC_V_4_3_2
default "4.3.3" if CC_V_4_3_3
default "4.4.0" if CC_V_4_4_0
default "4.4.1" if CC_V_4_4_1
# CT_INSERT_VERSION_STRING_ABOVE
# Don't remove above line!

View File

@ -12,6 +12,14 @@ config GMP_V_4_2_4
bool
prompt "4.2.4"
config GMP_V_4_3_0
bool
prompt "4.3.0"
config GMP_V_4_3_1
bool
prompt "4.3.1"
# CT_INSERT_VERSION_ABOVE
# Don't remove above line!
endchoice
@ -20,5 +28,7 @@ config GMP_VERSION
string
default "4.2.2" if GMP_V_4_2_2
default "4.2.4" if GMP_V_4_2_4
default "4.3.0" if GMP_V_4_3_0
default "4.3.1" if GMP_V_4_3_1
# CT_INSERT_VERSION_STRING_ABOVE
# Don't remove above line!

View File

@ -37,6 +37,10 @@ config DUMA_V_2_5_14
bool
prompt "2_5_14"
config DUMA_V_2_5_15
bool
prompt "2.5.15"
# CT_INSERT_VERSION_ABOVE
# Don't remove above line!
endchoice
@ -47,5 +51,6 @@ config DUMA_VERSION
default "2_5_8" if DUMA_V_2_5_8
default "2_5_12" if DUMA_V_2_5_12
default "2_5_14" if DUMA_V_2_5_14
default "2.5.15" if DUMA_V_2_5_15
# CT_INSERT_VERSION_STRING_ABOVE
# Don't remove above line!

View File

@ -25,6 +25,10 @@ config LTRACE_V_0_5_1
prompt "0.5.1 (EXPERIMENTAL)"
depends on EXPERIMENTAL
config LTRACE_V_0_5_2
bool
prompt "0.5.2"
# CT_INSERT_VERSION_ABOVE
# Don't remove above line!
endchoice
@ -34,5 +38,6 @@ config LTRACE_VERSION
default "0.4" if LTRACE_V_0_4
default "0.5" if LTRACE_V_0_5
default "0.5.1" if LTRACE_V_0_5_1
default "0.5.2" if LTRACE_V_0_5_2
# CT_INSERT_VERSION_STRING_ABOVE
# # Don't remove above line!

View File

@ -76,9 +76,9 @@ config KERNEL_V_2_6_26_8
prompt "2.6.26.8 (OBSOLETE)"
depends on OBSOLETE
config KERNEL_V_2_6_27_24
config KERNEL_V_2_6_27_29
bool
prompt "2.6.27.24"
prompt "2.6.27.29 (long-term stable)"
config KERNEL_V_2_6_28_10
bool
@ -104,6 +104,34 @@ config KERNEL_V_2_6_29_4
bool
prompt "2.6.29.4"
config KERNEL_V_2_6_29_5
bool
prompt "2.6.29.5"
config KERNEL_V_2_6_29_6
bool
prompt "2.6.29.6"
config KERNEL_V_2_6_30
bool
prompt "2.6.30"
config KERNEL_V_2_6_30_1
bool
prompt "2.6.30.1"
config KERNEL_V_2_6_30_2
bool
prompt "2.6.30.2"
config KERNEL_V_2_6_30_3
bool
prompt "2.6.30.3"
config KERNEL_V_2_6_30_4
bool
prompt "2.6.30.4"
# CT_INSERT_VERSION_ABOVE
# Don't remove above line!
@ -126,13 +154,20 @@ config KERNEL_VERSION
default "2.6.24.7" if KERNEL_V_2_6_24_7
default "2.6.25.20" if KERNEL_V_2_6_25_20
default "2.6.26.8" if KERNEL_V_2_6_26_8
default "2.6.27.24" if KERNEL_V_2_6_27_24
default "2.6.27.29" if KERNEL_V_2_6_27_29
default "2.6.28.10" if KERNEL_V_2_6_28_10
default "2.6.29" if KERNEL_V_2_6_29
default "2.6.29.1" if KERNEL_V_2_6_29_1
default "2.6.29.2" if KERNEL_V_2_6_29_2
default "2.6.29.3" if KERNEL_V_2_6_29_3
default "2.6.29.4" if KERNEL_V_2_6_29_4
default "2.6.29.5" if KERNEL_V_2_6_29_5
default "2.6.29.6" if KERNEL_V_2_6_29_6
default "2.6.30" if KERNEL_V_2_6_30
default "2.6.30.1" if KERNEL_V_2_6_30_1
default "2.6.30.2" if KERNEL_V_2_6_30_2
default "2.6.30.3" if KERNEL_V_2_6_30_3
default "2.6.30.4" if KERNEL_V_2_6_30_4
# CT_INSERT_VERSION_STRING_ABOVE
# Don't remove above line!
help

View File

@ -36,6 +36,10 @@ config EGLIBC_V_2_9
bool
prompt "2_9"
config LIBC_V_2_10
bool
prompt "2_10"
# CT_INSERT_VERSION_ABOVE
# Don't remove above line!
@ -55,6 +59,7 @@ config LIBC_VERSION
default "2_7" if EGLIBC_V_2_7
default "2_8" if EGLIBC_V_2_8
default "2_9" if EGLIBC_V_2_9
default "2_10" if LIBC_V_2_10
# CT_INSERT_VERSION_STRING_ABOVE
# Don't remove above line!

View File

@ -13,6 +13,10 @@ config LIBELF_V_0_8_10
bool
prompt "0.8.10"
config LIBELF_V_0_8_11
bool
prompt "0.8.11"
# CT_INSERT_VERSION_ABOVE
# Don't remove above line!
endchoice
@ -20,5 +24,6 @@ endchoice
config LIBELF_VERSION
string
default "0.8.10" if LIBELF_V_0_8_10
default "0.8.11" if LIBELF_V_0_8_11
# CT_INSERT_VERSION_STRING_ABOVE
# Don't remove above line!

View File

@ -0,0 +1,32 @@
diff -durN duma_2_5_15.orig/GNUmakefile duma_2_5_15/GNUmakefile
--- duma_2_5_15.orig/GNUmakefile 2008-08-03 21:22:38.000000000 +0200
+++ duma_2_5_15/GNUmakefile 2009-06-19 15:32:23.000000000 +0200
@@ -93,10 +93,6 @@
# also define 'WIN32'
# some defaults:
-CC=gcc
-CXX=g++
-AR=ar
-RANLIB=ranlib
INSTALL=install
RM=rm
RMFORCE=rm -f
@@ -471,7 +467,7 @@
createconf$(EXEPOSTFIX): createconf.o
- $(RMFORCE) createconf$(EXEPOSTFIX)
- $(CC) $(CFLAGS) $(DUMA_OPTIONS) createconf.o -o createconf$(EXEPOSTFIX)
+ $(HOSTCC) $(HOSTCFLAGS) $(DUMA_OPTIONS) createconf.o -o createconf$(EXEPOSTFIX)
tstheap$(EXEPOSTFIX): libduma.a tstheap.o
- $(RMFORCE) tstheap$(EXEPOSTFIX)
@@ -532,7 +528,7 @@
# define rules how to build objects for createconf
#
createconf.o:
- $(CC) $(CFLAGS) $(DUMA_OPTIONS) -c createconf.c -o $@
+ $(HOSTCC) $(HOSTCFLAGS) $(DUMA_OPTIONS) -c createconf.c -o $@
#

View File

@ -0,0 +1,19 @@
diff -durN duma_2_5_15.orig/GNUmakefile duma_2_5_15/GNUmakefile
--- duma_2_5_15.orig/GNUmakefile 2009-06-19 16:41:53.000000000 +0200
+++ duma_2_5_15/GNUmakefile 2009-06-19 16:43:53.000000000 +0200
@@ -289,9 +289,13 @@
dumatest.c tstheap.c thread-test.c testmt.c dumatestpp.cpp testoperators.cpp \
createconf.c
-OBJECTS=dumapp.o duma.o sem_inc.o print.o
+OBJECTS = duma.o sem_inc.o print.o
+SO_OBJECTS = duma_so.o sem_inc_so.o print_so.o
-SO_OBJECTS=dumapp_so.o duma_so.o sem_inc_so.o print_so.o
+ifeq ($(DUMA_CPP),1)
+OBJECTS += dumapp.o
+SO_OBJECTS += dumapp_so.o
+endif
# Make all the top-level targets the makefile knows about.
all: libduma.a tstheap$(EXEPOSTFIX) dumatest$(EXEPOSTFIX) thread-test$(EXEPOSTFIX) testmt$(EXEPOSTFIX) dumatestpp$(EXEPOSTFIX) testoperators$(EXEPOSTFIX) $(DUMA_DYN_DEPS)

View File

@ -0,0 +1,49 @@
diff -ru eglibc-2_9_orig/sysdeps/powerpc/powerpc32/memset.S eglibc-2_9/sysdeps/powerpc/powerpc32/memset.S
--- eglibc-2_9_orig/sysdeps/powerpc/powerpc32/memset.S 2007-04-13 08:35:45.000000000 -0700
+++ eglibc-2_9/sysdeps/powerpc/powerpc32/memset.S 2009-05-06 16:52:04.000000000 -0700
@@ -112,11 +112,13 @@
clrrwi. rALIGN, rLEN, 5
mtcrf 0x01, rLEN /* 40th instruction from .align */
+#ifndef BROKEN_PPC_8xx_CPU15
/* Check if we can use the special case for clearing memory using dcbz.
This requires that we know the correct cache line size for this
processor. Getting the __cache_line_size may require establishing GOT
addressability, so branch out of line to set this up. */
beq cr1, L(checklinesize)
+#endif
/* Store blocks of 32-bytes (256-bits) starting on a 32-byte boundary.
Can't assume that rCHR is zero or that the cache line size is either
@@ -158,6 +160,7 @@
add rMEMP, rMEMP, rALIGN
b L(medium_tail2) /* 72nd instruction from .align */
+#ifndef BROKEN_PPC_8xx_CPU15
.align 5
nop
/* Clear cache lines of memory in 128-byte chunks.
@@ -191,6 +194,7 @@
bdnz L(zloop)
beqlr cr5
b L(medium_tail2)
+#endif /* ! BROKEN_PPC_8xx_CPU15 */
.align 5
L(small):
@@ -248,6 +252,7 @@
stw rCHR, -8(rMEMP)
blr
+#ifndef BROKEN_PPC_8xx_CPU15
L(checklinesize):
#ifdef SHARED
mflr rTMP
@@ -329,6 +334,7 @@
L(handletail32):
clrrwi. rALIGN, rLEN, 5
b L(nondcbz)
+#endif /* ! BROKEN_PPC_8xx_CPU15 */
END (BP_SYM (memset))
libc_hidden_builtin_def (memset)

View File

@ -0,0 +1,33 @@
diff --git a/mpz/remove.c b/mpz/remove.c
--- a/mpz/remove.c
+++ b/mpz/remove.c
@@ -23,7 +23,7 @@
unsigned long int
mpz_remove (mpz_ptr dest, mpz_srcptr src, mpz_srcptr f)
{
- mpz_t fpow[40]; /* inexhaustible...until year 2020 or so */
+ mpz_t fpow[GMP_LIMB_BITS]; /* Really MP_SIZE_T_BITS */
mpz_t x, rem;
unsigned long int pwr;
int p;
@@ -69,7 +69,7 @@
mpz_set (dest, x);
}
- pwr = (1 << p) - 1;
+ pwr = (1L << p) - 1;
mpz_clear (fpow[p]);
diff --git a/mpz/remove.c b/mpz/remove.c
--- a/mpz/remove.c
+++ b/mpz/remove.c
@@ -80,7 +80,7 @@
mpz_tdiv_qr (x, rem, dest, fpow[p]);
if (SIZ (rem) == 0)
{
- pwr += 1 << p;
+ pwr += 1L << p;
mpz_set (dest, x);
}
mpz_clear (fpow[p]);

View File

@ -0,0 +1,31 @@
diff --git a/mpn/generic/toom44_mul.c b/mpn/generic/toom44_mul.c
--- a/mpn/generic/toom44_mul.c
+++ b/mpn/generic/toom44_mul.c
@@ -116,17 +116,16 @@
TMP_MARK;
- as1 = TMP_SALLOC_LIMBS (n + 1);
- asm1 = TMP_SALLOC_LIMBS (n + 1);
- as2 = TMP_SALLOC_LIMBS (n + 1);
- ash = TMP_SALLOC_LIMBS (n + 1);
- asmh = TMP_SALLOC_LIMBS (n + 1);
-
- bs1 = TMP_SALLOC_LIMBS (n + 1);
- bsm1 = TMP_SALLOC_LIMBS (n + 1);
- bs2 = TMP_SALLOC_LIMBS (n + 1);
- bsh = TMP_SALLOC_LIMBS (n + 1);
- bsmh = TMP_SALLOC_LIMBS (n + 1);
+ as1 = TMP_ALLOC_LIMBS (10 * n + 10);
+ asm1 = as1 + n + 1;
+ as2 = asm1 + n + 1;
+ ash = as2 + n + 1;
+ asmh = ash + n + 1;
+ bs1 = asmh + n + 1;
+ bsm1 = bs1 + n + 1;
+ bs2 = bsm1 + n + 1;
+ bsh = bs2 + n + 1;
+ bsmh = bsh + n + 1;
gp = pp;
hp = pp + n + 1;

View File

@ -0,0 +1,24 @@
diff -dur libelf-0.8.10.orig/configure libelf-0.8.10/configure
--- libelf-0.8.10.orig/configure 2007-09-07 14:08:06.000000000 +0200
+++ libelf-0.8.10/configure 2008-10-23 22:43:19.000000000 +0200
@@ -1595,7 +1595,7 @@
echo $ac_n "(cached) $ac_c" 1>&6
else
if test "$cross_compiling" = yes; then
- ac_cv_sizeof_long_long=0
+ ac_cv_sizeof_long_long=8
else
cat > conftest.$ac_ext <<EOF
#line 1602 "configure"
diff -dur libelf-0.8.10.orig/configure.in libelf-0.8.10/configure.in
--- libelf-0.8.10.orig/configure.in 2007-09-07 14:07:59.000000000 +0200
+++ libelf-0.8.10/configure.in 2008-10-23 22:43:10.000000000 +0200
@@ -90,7 +90,7 @@
AC_CHECK_SIZEOF(short,2)
AC_CHECK_SIZEOF(int,4)
AC_CHECK_SIZEOF(long,4)
-AC_CHECK_SIZEOF(long long,0)
+AC_CHECK_SIZEOF(long long,8)
# Windows port
AC_CHECK_SIZEOF(__int64, 0)

View File

@ -0,0 +1,77 @@
diff -durN ltrace-0.5.2.orig/Makefile.in ltrace-0.5.2/Makefile.in
--- ltrace-0.5.2.orig/Makefile.in 2009-05-21 19:14:54.000000000 +0200
+++ ltrace-0.5.2/Makefile.in 2009-06-27 15:30:34.000000000 +0200
@@ -2,8 +2,14 @@
# ltrace's Makefile.in
#
-#OS := $(shell uname -s)
OS := @HOST_OS@
+ARCH := $(shell echo "@HOST_ARCH@" |sed -e s/i.86/i386/ \
+ -e s/sun4u/sparc64/ \
+ -e s/arm.*/arm/ \
+ -e s/sa110/arm/ \
+ -e s/ppc64/ppc/ \
+ -e s/s390x/s390/)
+export ARCH
TOPDIR = $(shell pwd)
diff -durN ltrace-0.5.2.orig/configure ltrace-0.5.2/configure
--- ltrace-0.5.2.orig/configure 2009-05-21 19:14:57.000000000 +0200
+++ ltrace-0.5.2/configure 2009-06-27 15:30:34.000000000 +0200
@@ -660,6 +660,7 @@
host_cpu
host_vendor
host_os
+HOST_ARCH
HOST_OS
CC
CFLAGS
@@ -1823,6 +1824,7 @@
case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+HOST_ARCH="$host_cpu"
case "$host_os" in
linux-gnu*) host_os=linux-gnu
esac
@@ -5406,6 +5408,7 @@
host_cpu!$host_cpu$ac_delim
host_vendor!$host_vendor$ac_delim
host_os!$host_os$ac_delim
+HOST_ARCH!$HOST_ARCH$ac_delim
HOST_OS!$HOST_OS$ac_delim
CC!$CC$ac_delim
CFLAGS!$CFLAGS$ac_delim
@@ -5426,7 +5429,7 @@
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 63; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 64; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
diff -durN ltrace-0.5.2.orig/configure.ac ltrace-0.5.2/configure.ac
--- ltrace-0.5.2.orig/configure.ac 2009-05-21 19:14:54.000000000 +0200
+++ ltrace-0.5.2/configure.ac 2009-06-27 15:30:34.000000000 +0200
@@ -11,6 +11,8 @@
esac
HOST_OS="$host_os"
AC_SUBST(HOST_OS)
+HOST_ARCH="$host_cpu"
+AC_SUBST(HOST_ARCH)
dnl Checks for programs.
AC_PROG_CC
diff -durN ltrace-0.5.2.orig/sysdeps/linux-gnu/Makefile ltrace-0.5.2/sysdeps/linux-gnu/Makefile
--- ltrace-0.5.2.orig/sysdeps/linux-gnu/Makefile 2009-05-21 19:14:54.000000000 +0200
+++ ltrace-0.5.2/sysdeps/linux-gnu/Makefile 2009-06-27 15:30:34.000000000 +0200
@@ -1,6 +1,3 @@
-ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
- -e s/arm.*/arm/ -e s/sa110/arm/ -e s/ppc64/ppc/ -e s/s390x/s390/)
-
CPPFLAGS += -I$(TOPDIR)/sysdeps/linux-gnu/$(ARCH)
OBJ = events.o trace.o proc.o breakpoint.o

View File

@ -0,0 +1,11 @@
diff -durN ltrace-0.5.2.orig/Makefile.in ltrace-0.5.2/Makefile.in
--- ltrace-0.5.2.orig/Makefile.in 2009-06-27 15:34:04.000000000 +0200
+++ ltrace-0.5.2/Makefile.in 2009-06-27 15:34:27.000000000 +0200
@@ -5,6 +5,7 @@
OS := @HOST_OS@
ARCH := $(shell echo "@HOST_ARCH@" |sed -e s/i.86/i386/ \
-e s/sun4u/sparc64/ \
+ -e s/alpha.*/alpha/ \
-e s/arm.*/arm/ \
-e s/sa110/arm/ \
-e s/ppc64/ppc/ \

View File

@ -0,0 +1,240 @@
--- ltrace-0.5.2.orig/TODO
+++ ltrace-0.5.2/TODO
@@ -37,3 +37,4 @@
* debug: change "-d" option to be something like "-d elf,events", or "-d breakpoints"
* Find out if a process is sharing memory with its parent?
* When using -p, find out if that process is sharing memory with other procs
+* After a clone(), syscalls may be seen as sysrets in s390 (see trace.c:syscall_p())
--- ltrace-0.5.2.orig/process_event.c
+++ ltrace-0.5.2/process_event.c
@@ -170,7 +170,7 @@
enable_breakpoint(proc->pid, proc->breakpoint_being_enabled);
proc->breakpoint_being_enabled = NULL;
}
- if (proc->parent->state == STATE_ATTACHED && options.follow) {
+ if (options.follow) {
proc->state = STATE_ATTACHED;
} else {
proc->state = STATE_IGNORED;
--- ltrace-0.5.2.orig/sysdeps/linux-gnu/ppc/trace.c
+++ ltrace-0.5.2/sysdeps/linux-gnu/ppc/trace.c
@@ -50,9 +50,9 @@
*sysnum =
(int)ptrace(PTRACE_PEEKUSER, proc->pid,
sizeof(long) * PT_R0, 0);
- if (proc->callstack_depth > 0
- && proc->callstack[proc->callstack_depth -
- 1].is_syscall) {
+ if (proc->callstack_depth > 0 &&
+ proc->callstack[proc->callstack_depth - 1].is_syscall &&
+ proc->callstack[proc->callstack_depth - 1].c_un.syscall == *sysnum) {
return 2;
}
return 1;
--- ltrace-0.5.2.orig/sysdeps/linux-gnu/i386/trace.c
+++ ltrace-0.5.2/sysdeps/linux-gnu/i386/trace.c
@@ -32,7 +32,8 @@
*sysnum = ptrace(PTRACE_PEEKUSER, proc->pid, 4 * ORIG_EAX, 0);
if (proc->callstack_depth > 0 &&
- proc->callstack[proc->callstack_depth - 1].is_syscall) {
+ proc->callstack[proc->callstack_depth - 1].is_syscall &&
+ proc->callstack[proc->callstack_depth - 1].c_un.syscall == *sysnum) {
return 2;
}
--- ltrace-0.5.2.orig/sysdeps/linux-gnu/ia64/trace.c
+++ ltrace-0.5.2/sysdeps/linux-gnu/ia64/trace.c
@@ -106,8 +106,8 @@
if (insn == 0x1000000000 || insn == 0x1ffffffffff) {
*sysnum = r15;
if (proc->callstack_depth > 0 &&
- proc->callstack[proc->callstack_depth -
- 1].is_syscall) {
+ proc->callstack[proc->callstack_depth - 1].is_syscall &&
+ proc->callstack[proc->callstack_depth - 1].c_un.syscall == *sysnum) {
return 2;
}
return 1;
--- ltrace-0.5.2.orig/sysdeps/linux-gnu/m68k/trace.c
+++ ltrace-0.5.2/sysdeps/linux-gnu/m68k/trace.c
@@ -36,9 +36,8 @@
if (*sysnum >= 0) {
depth = proc->callstack_depth;
if (depth > 0 &&
- proc->callstack[depth - 1].is_syscall &&
- proc->callstack[depth - 1].c_un.syscall ==
- *sysnum) {
+ proc->callstack[depth - 1].is_syscall &&
+ proc->callstack[depth - 1].c_un.syscall == *sysnum) {
return 2;
} else {
return 1;
--- ltrace-0.5.2.orig/sysdeps/linux-gnu/alpha/trace.c
+++ ltrace-0.5.2/sysdeps/linux-gnu/alpha/trace.c
@@ -36,8 +36,9 @@
return 0;
*sysnum =
ptrace(PTRACE_PEEKUSER, proc->pid, 0 /* REG_R0 */ , 0);
- if (proc->callstack_depth > 0
- && proc->callstack[proc->callstack_depth - 1].is_syscall) {
+ if (proc->callstack_depth > 0 &&
+ proc->callstack[proc->callstack_depth - 1].is_syscall &&
+ proc->callstack[proc->callstack_depth - 1].c_un.syscall == *sysnum) {
return 2;
}
if (*sysnum >= 0 && *sysnum < 500) {
--- ltrace-0.5.2.orig/sysdeps/linux-gnu/sparc/trace.c
+++ ltrace-0.5.2/sysdeps/linux-gnu/sparc/trace.c
@@ -33,9 +33,9 @@
insn = ptrace(PTRACE_PEEKTEXT, proc->pid, ip, 0);
if ((insn & 0xc1f8007f) == 0x81d00010) {
*sysnum = ((proc_archdep *) proc->arch_ptr)->regs.r_g1;
- if ((proc->callstack_depth > 0)
- && proc->callstack[proc->callstack_depth -
- 1].is_syscall) {
+ if (proc->callstack_depth > 0 &&
+ proc->callstack[proc->callstack_depth - 1].is_syscall &&
+ proc->callstack[proc->callstack_depth - 1].c_un.syscall == *sysnum) {
return 2;
} else if (*sysnum >= 0) {
return 1;
--- ltrace-0.5.2.orig/sysdeps/linux-gnu/mipsel/trace.c
+++ ltrace-0.5.2/sysdeps/linux-gnu/mipsel/trace.c
@@ -60,33 +60,34 @@
int
syscall_p(Process *proc, int status, int *sysnum) {
if (WIFSTOPPED(status)
- && WSTOPSIG(status) == (SIGTRAP | proc->tracesysgood)) {
- /* get the user's pc (plus 8) */
- long pc = (long)get_instruction_pointer(proc);
- /* fetch the SWI instruction */
- int insn = ptrace(PTRACE_PEEKTEXT, proc->pid, pc - 4, 0);
- int num = ptrace(PTRACE_PEEKTEXT, proc->pid, pc - 8, 0);
-
-/*
- On a mipsel, syscall looks like:
- 24040fa1 li v0, 0x0fa1 # 4001 --> _exit syscall
- 0000000c syscall
- */
- if(insn!=0x0000000c){
- return 0;
- }
-
- *sysnum = (num & 0xFFFF) - 4000;
- /* if it is a syscall, return 1 or 2 */
- if (proc->callstack_depth > 0 &&
- proc->callstack[proc->callstack_depth - 1].is_syscall) {
- return 2;
- }
-
- if (*sysnum >= 0) {
- return 1;
- }
- }
+ && WSTOPSIG(status) == (SIGTRAP | proc->tracesysgood)) {
+ /* get the user's pc (plus 8) */
+ long pc = (long)get_instruction_pointer(proc);
+ /* fetch the SWI instruction */
+ int insn = ptrace(PTRACE_PEEKTEXT, proc->pid, pc - 4, 0);
+ int num = ptrace(PTRACE_PEEKTEXT, proc->pid, pc - 8, 0);
+
+ /*
+ On a mipsel, syscall looks like:
+ 24040fa1 li v0, 0x0fa1 # 4001 --> _exit syscall
+ 0000000c syscall
+ */
+ if(insn!=0x0000000c){
+ return 0;
+ }
+
+ *sysnum = (num & 0xFFFF) - 4000;
+ /* if it is a syscall, return 1 or 2 */
+ if (proc->callstack_depth > 0 &&
+ proc->callstack[proc->callstack_depth - 1].is_syscall &&
+ proc->callstack[proc->callstack_depth - 1].c_un.syscall == *sysnum) {
+ return 2;
+ }
+
+ if (*sysnum >= 0) {
+ return 1;
+ }
+ }
return 0;
}
/**
@@ -119,34 +120,34 @@
*/
long
gimme_arg(enum tof type, Process *proc, int arg_num, arg_type_info *info) {
- long ret;
- debug(2,"type %d arg %d",type,arg_num);
- if (type == LT_TOF_FUNCTION || type == LT_TOF_SYSCALL){
- if(arg_num <4){
- ret=ptrace(PTRACE_PEEKUSER,proc->pid,off_a0+arg_num,0);
- debug(2,"ret = %#lx",ret);
- return ret;
- } else {
- // If we need this, I think we can look at [sp+16] for arg_num==4.
- CP;
- return 0;
- }
- }
- if(arg_num>=0){
- fprintf(stderr,"args on return?");
- }
- if(type == LT_TOF_FUNCTIONR) {
- return ptrace(PTRACE_PEEKUSER,proc->pid,off_v0,0);
- }
- if (type == LT_TOF_SYSCALLR) {
- unsigned a3=ptrace(PTRACE_PEEKUSER, proc->pid,off_a3,0);
- unsigned v0=ptrace(PTRACE_PEEKUSER, proc->pid,off_v0,0);
- if(!a3){
- return v0;
- }
- return -1;
- }
- fprintf(stderr, "gimme_arg called with wrong arguments\n");
+ long ret;
+ debug(2,"type %d arg %d",type,arg_num);
+ if (type == LT_TOF_FUNCTION || type == LT_TOF_SYSCALL){
+ if(arg_num <4){
+ ret=ptrace(PTRACE_PEEKUSER,proc->pid,off_a0+arg_num,0);
+ debug(2,"ret = %#lx",ret);
+ return ret;
+ } else {
+ // If we need this, I think we can look at [sp+16] for arg_num==4.
+ CP;
+ return 0;
+ }
+ }
+ if(arg_num>=0){
+ fprintf(stderr,"args on return?");
+ }
+ if(type == LT_TOF_FUNCTIONR) {
+ return ptrace(PTRACE_PEEKUSER,proc->pid,off_v0,0);
+ }
+ if (type == LT_TOF_SYSCALLR) {
+ unsigned a3=ptrace(PTRACE_PEEKUSER, proc->pid,off_a3,0);
+ unsigned v0=ptrace(PTRACE_PEEKUSER, proc->pid,off_v0,0);
+ if(!a3){
+ return v0;
+ }
+ return -1;
+ }
+ fprintf(stderr, "gimme_arg called with wrong arguments\n");
return 0;
}
--- ltrace-0.5.2.orig/sysdeps/linux-gnu/x86_64/trace.c
+++ ltrace-0.5.2/sysdeps/linux-gnu/x86_64/trace.c
@@ -41,7 +41,8 @@
*sysnum = ptrace(PTRACE_PEEKUSER, proc->pid, 8 * ORIG_RAX, 0);
if (proc->callstack_depth > 0 &&
- proc->callstack[proc->callstack_depth - 1].is_syscall) {
+ proc->callstack[proc->callstack_depth - 1].is_syscall &&
+ proc->callstack[proc->callstack_depth - 1].c_un.syscall == *sysnum) {
return 2;
}

View File

@ -96,7 +96,11 @@ addToolVersion() {
ver_m=$(echo "${version}...." |cut -d . -f 2)
if [ ${ver_M} -gt 4 \
-o \( ${ver_M} -eq 4 -a ${ver_m} -ge 3 \) ]; then
SedExpr1=" select CC_GCC_4_3_or_later\n"
SedExpr1="${SedExpr1} select CC_GCC_4_3_or_later\n"
fi
if [ ${ver_M} -gt 4 \
-o \( ${ver_M} -eq 4 -a ${ver_m} -ge 4 \) ]; then
SedExpr1="${SedExpr1} select CC_GCC_4_4_or_later\n"
fi
fi
SedExpr2=" default \"${version}\" if ${cat}_V_${v}"

View File

@ -412,7 +412,7 @@ if [ -z "${CT_RESTART}" ]; then
else
case "${tool}" in
# We'll at least need some of them...
ar|as|gcc|ld|nm|objcopy|objdump|ranlib)
ar|as|gcc|g++|ld|nm|objcopy|objdump|ranlib)
CT_Abort "Missing: '${t}${tool}${!s}' or '${t}${tool}' or '${tool}' : either needed!"
;;
# Some are conditionnally required

View File

@ -1,7 +1,8 @@
#!/bin/sh
dirname="$(dirname "${0}")"
basename="$(basename "${0}")"
canonicalizedname=$(readlink -nm "${0}")
dirname="$(dirname "${canonicalizedname}")"
basename="$(basename "${canonicalizedname}")"
ld_lib_path="$(dirname "${dirname}")/lib"