patches/strace/4.5.15/110-dont-use-REG_SYSCALL-for-sh.patch
author Oron Peled <oron@actcom.co.il>
Mon Aug 03 00:49:25 2009 +0200 (2009-08-03)
changeset 1449 8ad2773e7ae3
parent 746 b150d6f590fc
permissions -rw-r--r--
[complib:mpfr] Fix building MPFR in some weird cases

The tmul test uses a compiled-in input file in $(srcdir).
The problem is that the Makefile passes it unquoted. The C code
tries to stringify it using clever macros, which may *usually* work.

In my case the source directory was named:
.../toolchain-powerpc-e500v2-linux-gnuspe-1.0-2.fc10/.../tests
And guess what? During testing I found out the program fails because
it tries to open:
.../toolchain-powerpc-e500v2-1-gnuspe-1.0-2.fc10/.../tests

Yes, CPP tokenized the macro before stringifying it and not surprisingly
the 'linux' part was converted to 1.
[on Fedora-10: cpp (GCC) 4.3.2 20081105 (Red Hat 4.3.2-7)]

So the attached patch simplify the macros and pass the path as string
from the Makefile.
     1 diff -dur strace-4.5.15.orig/process.c strace-4.5.15/process.c
     2 --- strace-4.5.15.orig/process.c	2007-01-11 23:08:38.000000000 +0100
     3 +++ strace-4.5.15/process.c	2007-07-14 19:19:58.000000000 +0200
     4 @@ -2679,7 +2679,6 @@
     5         { 4*REG_GBR,            "4*REG_GBR"                             },
     6         { 4*REG_MACH,           "4*REG_MACH"                            },
     7         { 4*REG_MACL,           "4*REG_MACL"                            },
     8 -       { 4*REG_SYSCALL,        "4*REG_SYSCALL"                         },
     9         { 4*REG_FPUL,           "4*REG_FPUL"                            },
    10         { 4*REG_FPREG0,         "4*REG_FPREG0"                          },
    11         { 4*(REG_FPREG0+1),     "4*REG_FPREG1"                          },