1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/patches/glibc/2.2.5/dl-machine-m68k.patch Wed May 23 20:49:02 2007 +0000
1.3 @@ -0,0 +1,206 @@
1.4 +Retrieved with
1.5 + wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/m68k/dl-machine.h.diff?r1=1.53&r2=1.55&cvsroot=glibc'
1.6 +
1.7 +Fixes error
1.8 +
1.9 +In file included from dynamic-link.h:21,
1.10 + from dl-load.c:32:
1.11 +../sysdeps/m68k/dl-machine.h:108: error: parse error before '.' token
1.12 +../sysdeps/m68k/dl-machine.h:109: error: stray '@' in program
1.13 +../sysdeps/m68k/dl-machine.h:120: error: syntax error at '#' token
1.14 +../sysdeps/m68k/dl-machine.h:123: error: stray '\' in program
1.15 +../sysdeps/m68k/dl-machine.h:123: error: missing terminating " character
1.16 +../sysdeps/m68k/dl-machine.h:148: error: stray '@' in program
1.17 +../sysdeps/m68k/dl-machine.h:152: error: syntax error at '#' token
1.18 +../sysdeps/m68k/dl-machine.h:156: error: stray '@' in program
1.19 +../sysdeps/m68k/dl-machine.h:161: error: stray '@' in program
1.20 +../sysdeps/m68k/dl-machine.h:163: error: stray '@' in program
1.21 +../sysdeps/m68k/dl-machine.h:166: error: stray '@' in program
1.22 +In file included from dynamic-link.h:21,
1.23 + from dl-load.c:32:
1.24 +../sysdeps/m68k/dl-machine.h:175:4: invalid preprocessing directive #Call
1.25 +../sysdeps/m68k/dl-machine.h:179: error: stray '@' in program
1.26 +../sysdeps/m68k/dl-machine.h:180: error: stray '@' in program
1.27 +../sysdeps/m68k/dl-machine.h:181: error: syntax error at '#' token
1.28 +../sysdeps/m68k/dl-machine.h:182: error: syntax error at '#' token
1.29 +../sysdeps/m68k/dl-machine.h:184: error: stray '@' in program
1.30 +../sysdeps/m68k/dl-machine.h:187: error: missing terminating ' character
1.31 +../sysdeps/m68k/dl-machine.h:190: error: missing terminating " character
1.32 +dl-load.c: In function `_dl_map_object_from_fd':
1.33 +dl-load.c:1089: warning: use of cast expressions as lvalues is deprecated
1.34 +dl-load.c:1089: warning: use of cast expressions as lvalues is deprecated
1.35 +dl-load.c:1109: warning: use of cast expressions as lvalues is deprecated
1.36 +dl-load.c:1109: warning: use of cast expressions as lvalues is deprecated
1.37 +make[2]: *** [/home/dank/wk/crosstool-0.28-rc24/build/m68k-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/build-glibc/elf/dl-load.o] Error 1
1.38 +
1.39 +===================================================================
1.40 +RCS file: /cvs/glibc/libc/sysdeps/m68k/dl-machine.h,v
1.41 +retrieving revision 1.53
1.42 +retrieving revision 1.55
1.43 +diff -u -r1.53 -r1.55
1.44 +--- libc/sysdeps/m68k/dl-machine.h 2001/08/26 22:26:36 1.53
1.45 ++++ libc/sysdeps/m68k/dl-machine.h 2002/02/01 10:28:20 1.55
1.46 +@@ -1,5 +1,5 @@
1.47 + /* Machine-dependent ELF dynamic relocation inline functions. m68k version.
1.48 +- Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
1.49 ++ Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
1.50 + This file is part of the GNU C Library.
1.51 +
1.52 + The GNU C Library is free software; you can redistribute it and/or
1.53 +@@ -85,11 +85,11 @@
1.54 + {
1.55 + got[2] = (Elf32_Addr) &_dl_runtime_profile;
1.56 +
1.57 +- if (_dl_name_match_p (_dl_profile, l))
1.58 ++ if (_dl_name_match_p (GL(dl_profile), l))
1.59 + {
1.60 + /* This is the object we are looking for. Say that we really
1.61 + want profiling and the timers are started. */
1.62 +- _dl_profile_map = l;
1.63 ++ GL(dl_profile_map) = l;
1.64 + }
1.65 + }
1.66 + else
1.67 +@@ -104,22 +104,22 @@
1.68 + /* This code is used in dl-runtime.c to call the `fixup' function
1.69 + and then redirect to the address it returns. */
1.70 + #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \
1.71 +-"| Trampoline for " #fixup_name "
1.72 +- .globl " #tramp_name "
1.73 +- .type " #tramp_name ", @function
1.74 +-" #tramp_name ":
1.75 +- | Save %a0 (struct return address) and %a1.
1.76 +- move.l %a0, -(%sp)
1.77 +- move.l %a1, -(%sp)
1.78 +- | Call the real address resolver.
1.79 +- jbsr " #fixup_name "
1.80 +- | Restore register %a0 and %a1.
1.81 +- move.l (%sp)+, %a1
1.82 +- move.l (%sp)+, %a0
1.83 +- | Pop parameters
1.84 +- addq.l #8, %sp
1.85 +- | Call real function.
1.86 +- jmp (%d0)
1.87 ++"| Trampoline for " #fixup_name "\n\
1.88 ++ .globl " #tramp_name "\n\
1.89 ++ .type " #tramp_name ", @function\n\
1.90 ++" #tramp_name ":\n\
1.91 ++ | Save %a0 (struct return address) and %a1.\n\
1.92 ++ move.l %a0, -(%sp)\n\
1.93 ++ move.l %a1, -(%sp)\n\
1.94 ++ | Call the real address resolver.\n\
1.95 ++ jbsr " #fixup_name "\n\
1.96 ++ | Restore register %a0 and %a1.\n\
1.97 ++ move.l (%sp)+, %a1\n\
1.98 ++ move.l (%sp)+, %a0\n\
1.99 ++ | Pop parameters\n\
1.100 ++ addq.l #8, %sp\n\
1.101 ++ | Call real function.\n\
1.102 ++ jmp (%d0)\n\
1.103 + .size " #tramp_name ", . - " #tramp_name "\n"
1.104 + #ifndef PROF
1.105 + #define ELF_MACHINE_RUNTIME_TRAMPOLINE \
1.106 +@@ -143,50 +143,50 @@
1.107 + its return value is the user program's entry point. */
1.108 +
1.109 + #define RTLD_START asm ("\
1.110 +- .text
1.111 +- .globl _start
1.112 +- .type _start,@function
1.113 +-_start:
1.114 +- move.l %sp, -(%sp)
1.115 +- jbsr _dl_start
1.116 +- addq.l #4, %sp
1.117 +- /* FALLTHRU */
1.118 +-
1.119 +- .globl _dl_start_user
1.120 +- .type _dl_start_user,@function
1.121 +-_dl_start_user:
1.122 +- | Save the user entry point address in %a4.
1.123 +- move.l %d0, %a4
1.124 +- | Point %a5 at the GOT.
1.125 +- lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5
1.126 +- | Remember the highest stack address.
1.127 +- move.l %sp, ([__libc_stack_end@GOT.w, %a5])
1.128 +- | See if we were run as a command with the executable file
1.129 +- | name as an extra leading argument.
1.130 +- move.l ([_dl_skip_args@GOT.w, %a5]), %d0
1.131 +- | Pop the original argument count
1.132 +- move.l (%sp)+, %d1
1.133 +- | Subtract _dl_skip_args from it.
1.134 +- sub.l %d0, %d1
1.135 +- | Adjust the stack pointer to skip _dl_skip_args words.
1.136 +- lea (%sp, %d0*4), %sp
1.137 +- | Push back the modified argument count.
1.138 +- move.l %d1, -(%sp)
1.139 +- # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)
1.140 +- pea 8(%sp, %d1*4)
1.141 +- pea 8(%sp)
1.142 +- move.l %d1, -(%sp)
1.143 +- move.l ([_dl_loaded@GOT.w, %a5]), -(%sp)
1.144 +- jbsr _dl_init@PLTPC
1.145 +- addq.l #8, %sp
1.146 +- addq.l #8, %sp
1.147 +- | Pass our finalizer function to the user in %a1.
1.148 +- move.l _dl_fini@GOT.w(%a5), %a1
1.149 +- | Initialize %fp with the stack pointer.
1.150 +- move.l %sp, %fp
1.151 +- | Jump to the user's entry point.
1.152 +- jmp (%a4)
1.153 +- .size _dl_start_user, . - _dl_start_user
1.154 ++ .text\n\
1.155 ++ .globl _start\n\
1.156 ++ .type _start,@function\n\
1.157 ++_start:\n\
1.158 ++ move.l %sp, -(%sp)\n\
1.159 ++ jbsr _dl_start\n\
1.160 ++ addq.l #4, %sp\n\
1.161 ++ /* FALLTHRU */\n\
1.162 ++\n\
1.163 ++ .globl _dl_start_user\n\
1.164 ++ .type _dl_start_user,@function\n\
1.165 ++_dl_start_user:\n\
1.166 ++ | Save the user entry point address in %a4.\n\
1.167 ++ move.l %d0, %a4\n\
1.168 ++ | Point %a5 at the GOT.\n\
1.169 ++ lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5\n\
1.170 ++ | Remember the highest stack address.\n\
1.171 ++ move.l %sp, ([__libc_stack_end@GOT.w, %a5])\n\
1.172 ++ | See if we were run as a command with the executable file\n\
1.173 ++ | name as an extra leading argument.\n\
1.174 ++ move.l ([_dl_skip_args@GOT.w, %a5]), %d0\n\
1.175 ++ | Pop the original argument count\n\
1.176 ++ move.l (%sp)+, %d1\n\
1.177 ++ | Subtract _dl_skip_args from it.\n\
1.178 ++ sub.l %d0, %d1\n\
1.179 ++ | Adjust the stack pointer to skip _dl_skip_args words.\n\
1.180 ++ lea (%sp, %d0*4), %sp\n\
1.181 ++ | Push back the modified argument count.\n\
1.182 ++ move.l %d1, -(%sp)\n\
1.183 ++ # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)\n\
1.184 ++ pea 8(%sp, %d1*4)\n\
1.185 ++ pea 8(%sp)\n\
1.186 ++ move.l %d1, -(%sp)\n\
1.187 ++ move.l ([_rtld_global@GOT.w, %a5]), -(%sp)\n\
1.188 ++ jbsr _dl_init@PLTPC\n\
1.189 ++ addq.l #8, %sp\n\
1.190 ++ addq.l #8, %sp\n\
1.191 ++ | Pass our finalizer function to the user in %a1.\n\
1.192 ++ move.l _dl_fini@GOT.w(%a5), %a1\n\
1.193 ++ | Initialize %fp with the stack pointer.\n\
1.194 ++ move.l %sp, %fp\n\
1.195 ++ | Jump to the user's entry point.\n\
1.196 ++ jmp (%a4)\n\
1.197 ++ .size _dl_start_user, . - _dl_start_user\n\
1.198 + .previous");
1.199 +
1.200 + /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
1.201 +@@ -251,7 +251,7 @@
1.202 + found. */
1.203 + break;
1.204 + if (sym->st_size > refsym->st_size
1.205 +- || (sym->st_size < refsym->st_size && _dl_verbose))
1.206 ++ || (sym->st_size < refsym->st_size && GL(dl_verbose)))
1.207 + {
1.208 + extern char **_dl_argv;
1.209 + const char *strtab;