| @@ -1,36 +1,36 @@ | | | @@ -1,36 +1,36 @@ |
1 | $NetBSD: patch-ab,v 1.5 2009/04/17 19:54:39 he Exp $ | | 1 | $NetBSD: patch-ab,v 1.6 2009/04/17 22:08:44 he Exp $ |
2 | | | 2 | |
3 | The R_PPC_ADDR16{HI,LO} constants are named something else on | | 3 | The R_PPC_ADDR16{HI,LO} constants are named something else on |
4 | NetBSD, and might be elsewhere. | | 4 | NetBSD, and might be elsewhere. |
5 | Also add workarounds for NetBSD/powerpc 3.x, which has a minimal | | 5 | Also add workarounds for NetBSD/powerpc 3.x, which has some |
6 | <powerpc/elf_machdep.h> file. | | 6 | constants defined as enums. |
7 | | | 7 | |
8 | --- src/exec_save.c.orig 2009-03-08 20:32:43.000000000 +0000 | | 8 | --- src/exec_save.c.orig 2009-03-08 20:32:43.000000000 +0000 |
9 | +++ src/exec_save.c | | 9 | +++ src/exec_save.c |
10 | @@ -30,6 +30,26 @@ static void save_int(FILE *fp, int i); | | 10 | @@ -30,6 +30,26 @@ static void save_int(FILE *fp, int i); |
11 | static void save_short(FILE *fp, short s); | | 11 | static void save_short(FILE *fp, short s); |
12 | static void save_struct(FILE *fp, void *sp, size_t size); | | 12 | static void save_struct(FILE *fp, void *sp, size_t size); |
13 | | | 13 | |
14 | +#if defined(PARROT_PPC) | | 14 | +#if defined(PARROT_PPC) |
15 | +#if !defined(R_PPC_ADDR16_HI) && !defined(R_PPC_ADDR16_LO) && \ | | 15 | +#if !defined(R_PPC_ADDR16_HI) && !defined(R_PPC_ADDR16_LO) && \ |
16 | + defined(R_PPC_16_HI) && defined(R_PPC_16_LO) | | 16 | + defined(R_PPC_16_HI) && defined(R_PPC_16_LO) |
17 | +# define R_PPC_ADDR16_HI R_PPC_16_HI | | 17 | +# define R_PPC_ADDR16_HI R_PPC_16_HI |
18 | +# define R_PPC_ADDR16_LO R_PPC_16_LO | | 18 | +# define R_PPC_ADDR16_LO R_PPC_16_LO |
19 | +#endif | | 19 | +#endif |
20 | +/* | | 20 | +/* |
21 | + * NetBSD/powerpc 3.x doesn't define these constants, | | 21 | + * NetBSD/powerpc 3.x doesn't define these constants, |
22 | + * so add some workarounds for it. | | 22 | + * but instead has them as enums, so add some workarounds for it. |
23 | + */ | | 23 | + */ |
24 | +#if !defined(R_PPC_ADDR16_HI) && !defined(R_PPC_ADDR16_LO) && \ | | 24 | +#if !defined(R_PPC_ADDR16_HI) && !defined(R_PPC_ADDR16_LO) && \ |
25 | + defined(__NetBSD__) | | 25 | + defined(__NetBSD__) |
26 | +# define R_PPC_ADDR16_HI 5 | | 26 | +# define R_PPC_ADDR16_HI RELOC_16_HI |
27 | +# define R_PPC_ADDR16_LO 4 | | 27 | +# define R_PPC_ADDR16_LO RELOC_16_LO |
28 | +#endif | | 28 | +#endif |
29 | +#if !defined(R_PPC_REL24) && defined(__NetBSD__) | | 29 | +#if !defined(R_PPC_REL24) && defined(__NetBSD__) |
30 | +# define R_PPC_REL24 10 | | 30 | +# define R_PPC_REL24 RELOC_REL24 |
31 | +#endif | | 31 | +#endif |
32 | +#endif /* PARROT_PPC */ | | 32 | +#endif /* PARROT_PPC */ |
33 | + | | 33 | + |
34 | #ifdef EXEC_A_OUT | | 34 | #ifdef EXEC_A_OUT |
35 | | | 35 | |
36 | # include <a.out.h> | | 36 | # include <a.out.h> |