]> git.pld-linux.org Git - packages/qemu.git/blob - qemu-gcc4_ppc.patch
- gcc 3.4 segfault for mips
[packages/qemu.git] / qemu-gcc4_ppc.patch
1 diff -ur qemu-0.9.0-o/dyngen.c qemu-0.9.0/dyngen.c
2 --- qemu-0.9.0-o/dyngen.c       2007-02-06 14:44:57.000000000 -0700
3 +++ qemu-0.9.0/dyngen.c 2007-02-06 14:46:11.000000000 -0700
4 @@ -1692,6 +1692,9 @@
5  #else
6          fprintf(outfile, "    extern void %s();\n", name);
7  #endif
8 +#if defined(HOST_PPC)
9 +    uint8_t *blr_addr = NULL;
10 +#endif
11  
12          for(i = 0, rel = relocs;i < nb_relocs; i++, rel++) {
13              host_ulong offset = get_rel_offset(rel);
14 @@ -2053,6 +2056,9 @@
15  #else
16  #error unsupport object format
17  #endif
18 +               if (blr_addr)
19 +                   fprintf(outfile, "    *(uint32_t *)(gen_code_ptr + %d) = 0x48000000 | %d;\n",
20 +                           blr_addr - p_start, p_end - blr_addr);
21              }
22  #elif defined(HOST_S390)
23              {
24 diff -ur qemu-0.9.0-o/dyngen.c.orig qemu-0.9.0/dyngen.c.orig
25 --- qemu-0.9.0-o/dyngen.c.orig  2007-02-05 16:01:54.000000000 -0700
26 +++ qemu-0.9.0/dyngen.c.orig    2007-02-06 14:44:57.000000000 -0700
27 @@ -1206,13 +1206,11 @@
28      } else if (strstart(sym_name, "__op_gen_label", &p)) {
29          snprintf(name, name_size, "gen_labels[param%s]", p);
30      } else {
31 -#ifdef HOST_SPARC
32          if (sym_name[0] == '.')
33              snprintf(name, name_size,
34                       "(long)(&__dot_%s)",
35                       sym_name + 1);
36          else
37 -#endif
38              snprintf(name, name_size, "(long)(&%s)", sym_name);
39      }
40  }
41 @@ -1706,14 +1704,12 @@
42                      !strstart(sym_name, "__op_param", NULL) &&
43                      !strstart(sym_name, "__op_jmp", NULL) &&
44                      !strstart(sym_name, "__op_gen_label", NULL)) {
45 -#if defined(HOST_SPARC)
46                     if (sym_name[0] == '.') {
47                         fprintf(outfile,
48                                 "extern char __dot_%s __asm__(\"%s\");\n",
49                                 sym_name+1, sym_name);
50                         continue;
51                     }
52 -#endif
53  #if defined(__APPLE__)
54  /* set __attribute((unused)) on darwin because we wan't to avoid warning when we don't use the symbol */
55                      fprintf(outfile, "extern char %s __attribute__((unused));\n", sym_name);
56 Only in qemu-0.9.0: dyngen.c.rej
This page took 0.033277 seconds and 3 git commands to generate.