yann@1
|
1 |
Retrieved with
|
yann@1
|
2 |
wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/m68k/dl-machine.h.diff?r1=1.53&r2=1.55&cvsroot=glibc'
|
yann@1
|
3 |
|
yann@1
|
4 |
Fixes error
|
yann@1
|
5 |
|
yann@1
|
6 |
In file included from dynamic-link.h:21,
|
yann@1
|
7 |
from dl-load.c:32:
|
yann@1
|
8 |
../sysdeps/m68k/dl-machine.h:108: error: parse error before '.' token
|
yann@1
|
9 |
../sysdeps/m68k/dl-machine.h:109: error: stray '@' in program
|
yann@1
|
10 |
../sysdeps/m68k/dl-machine.h:120: error: syntax error at '#' token
|
yann@1
|
11 |
../sysdeps/m68k/dl-machine.h:123: error: stray '\' in program
|
yann@1
|
12 |
../sysdeps/m68k/dl-machine.h:123: error: missing terminating " character
|
yann@1
|
13 |
../sysdeps/m68k/dl-machine.h:148: error: stray '@' in program
|
yann@1
|
14 |
../sysdeps/m68k/dl-machine.h:152: error: syntax error at '#' token
|
yann@1
|
15 |
../sysdeps/m68k/dl-machine.h:156: error: stray '@' in program
|
yann@1
|
16 |
../sysdeps/m68k/dl-machine.h:161: error: stray '@' in program
|
yann@1
|
17 |
../sysdeps/m68k/dl-machine.h:163: error: stray '@' in program
|
yann@1
|
18 |
../sysdeps/m68k/dl-machine.h:166: error: stray '@' in program
|
yann@1
|
19 |
In file included from dynamic-link.h:21,
|
yann@1
|
20 |
from dl-load.c:32:
|
yann@1
|
21 |
../sysdeps/m68k/dl-machine.h:175:4: invalid preprocessing directive #Call
|
yann@1
|
22 |
../sysdeps/m68k/dl-machine.h:179: error: stray '@' in program
|
yann@1
|
23 |
../sysdeps/m68k/dl-machine.h:180: error: stray '@' in program
|
yann@1
|
24 |
../sysdeps/m68k/dl-machine.h:181: error: syntax error at '#' token
|
yann@1
|
25 |
../sysdeps/m68k/dl-machine.h:182: error: syntax error at '#' token
|
yann@1
|
26 |
../sysdeps/m68k/dl-machine.h:184: error: stray '@' in program
|
yann@1
|
27 |
../sysdeps/m68k/dl-machine.h:187: error: missing terminating ' character
|
yann@1
|
28 |
../sysdeps/m68k/dl-machine.h:190: error: missing terminating " character
|
yann@1
|
29 |
dl-load.c: In function `_dl_map_object_from_fd':
|
yann@1
|
30 |
dl-load.c:1089: warning: use of cast expressions as lvalues is deprecated
|
yann@1
|
31 |
dl-load.c:1089: warning: use of cast expressions as lvalues is deprecated
|
yann@1
|
32 |
dl-load.c:1109: warning: use of cast expressions as lvalues is deprecated
|
yann@1
|
33 |
dl-load.c:1109: warning: use of cast expressions as lvalues is deprecated
|
yann@1
|
34 |
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
|
yann@1
|
35 |
|
yann@1
|
36 |
===================================================================
|
yann@1
|
37 |
RCS file: /cvs/glibc/libc/sysdeps/m68k/dl-machine.h,v
|
yann@1
|
38 |
retrieving revision 1.53
|
yann@1
|
39 |
retrieving revision 1.55
|
yann@1
|
40 |
diff -u -r1.53 -r1.55
|
yann@1
|
41 |
--- libc/sysdeps/m68k/dl-machine.h 2001/08/26 22:26:36 1.53
|
yann@1
|
42 |
+++ libc/sysdeps/m68k/dl-machine.h 2002/02/01 10:28:20 1.55
|
yann@1
|
43 |
@@ -1,5 +1,5 @@
|
yann@1
|
44 |
/* Machine-dependent ELF dynamic relocation inline functions. m68k version.
|
yann@1
|
45 |
- Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
|
yann@1
|
46 |
+ Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
|
yann@1
|
47 |
This file is part of the GNU C Library.
|
yann@1
|
48 |
|
yann@1
|
49 |
The GNU C Library is free software; you can redistribute it and/or
|
yann@1
|
50 |
@@ -85,11 +85,11 @@
|
yann@1
|
51 |
{
|
yann@1
|
52 |
got[2] = (Elf32_Addr) &_dl_runtime_profile;
|
yann@1
|
53 |
|
yann@1
|
54 |
- if (_dl_name_match_p (_dl_profile, l))
|
yann@1
|
55 |
+ if (_dl_name_match_p (GL(dl_profile), l))
|
yann@1
|
56 |
{
|
yann@1
|
57 |
/* This is the object we are looking for. Say that we really
|
yann@1
|
58 |
want profiling and the timers are started. */
|
yann@1
|
59 |
- _dl_profile_map = l;
|
yann@1
|
60 |
+ GL(dl_profile_map) = l;
|
yann@1
|
61 |
}
|
yann@1
|
62 |
}
|
yann@1
|
63 |
else
|
yann@1
|
64 |
@@ -104,22 +104,22 @@
|
yann@1
|
65 |
/* This code is used in dl-runtime.c to call the `fixup' function
|
yann@1
|
66 |
and then redirect to the address it returns. */
|
yann@1
|
67 |
#define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \
|
yann@1
|
68 |
-"| Trampoline for " #fixup_name "
|
yann@1
|
69 |
- .globl " #tramp_name "
|
yann@1
|
70 |
- .type " #tramp_name ", @function
|
yann@1
|
71 |
-" #tramp_name ":
|
yann@1
|
72 |
- | Save %a0 (struct return address) and %a1.
|
yann@1
|
73 |
- move.l %a0, -(%sp)
|
yann@1
|
74 |
- move.l %a1, -(%sp)
|
yann@1
|
75 |
- | Call the real address resolver.
|
yann@1
|
76 |
- jbsr " #fixup_name "
|
yann@1
|
77 |
- | Restore register %a0 and %a1.
|
yann@1
|
78 |
- move.l (%sp)+, %a1
|
yann@1
|
79 |
- move.l (%sp)+, %a0
|
yann@1
|
80 |
- | Pop parameters
|
yann@1
|
81 |
- addq.l #8, %sp
|
yann@1
|
82 |
- | Call real function.
|
yann@1
|
83 |
- jmp (%d0)
|
yann@1
|
84 |
+"| Trampoline for " #fixup_name "\n\
|
yann@1
|
85 |
+ .globl " #tramp_name "\n\
|
yann@1
|
86 |
+ .type " #tramp_name ", @function\n\
|
yann@1
|
87 |
+" #tramp_name ":\n\
|
yann@1
|
88 |
+ | Save %a0 (struct return address) and %a1.\n\
|
yann@1
|
89 |
+ move.l %a0, -(%sp)\n\
|
yann@1
|
90 |
+ move.l %a1, -(%sp)\n\
|
yann@1
|
91 |
+ | Call the real address resolver.\n\
|
yann@1
|
92 |
+ jbsr " #fixup_name "\n\
|
yann@1
|
93 |
+ | Restore register %a0 and %a1.\n\
|
yann@1
|
94 |
+ move.l (%sp)+, %a1\n\
|
yann@1
|
95 |
+ move.l (%sp)+, %a0\n\
|
yann@1
|
96 |
+ | Pop parameters\n\
|
yann@1
|
97 |
+ addq.l #8, %sp\n\
|
yann@1
|
98 |
+ | Call real function.\n\
|
yann@1
|
99 |
+ jmp (%d0)\n\
|
yann@1
|
100 |
.size " #tramp_name ", . - " #tramp_name "\n"
|
yann@1
|
101 |
#ifndef PROF
|
yann@1
|
102 |
#define ELF_MACHINE_RUNTIME_TRAMPOLINE \
|
yann@1
|
103 |
@@ -143,50 +143,50 @@
|
yann@1
|
104 |
its return value is the user program's entry point. */
|
yann@1
|
105 |
|
yann@1
|
106 |
#define RTLD_START asm ("\
|
yann@1
|
107 |
- .text
|
yann@1
|
108 |
- .globl _start
|
yann@1
|
109 |
- .type _start,@function
|
yann@1
|
110 |
-_start:
|
yann@1
|
111 |
- move.l %sp, -(%sp)
|
yann@1
|
112 |
- jbsr _dl_start
|
yann@1
|
113 |
- addq.l #4, %sp
|
yann@1
|
114 |
- /* FALLTHRU */
|
yann@1
|
115 |
-
|
yann@1
|
116 |
- .globl _dl_start_user
|
yann@1
|
117 |
- .type _dl_start_user,@function
|
yann@1
|
118 |
-_dl_start_user:
|
yann@1
|
119 |
- | Save the user entry point address in %a4.
|
yann@1
|
120 |
- move.l %d0, %a4
|
yann@1
|
121 |
- | Point %a5 at the GOT.
|
yann@1
|
122 |
- lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5
|
yann@1
|
123 |
- | Remember the highest stack address.
|
yann@1
|
124 |
- move.l %sp, ([__libc_stack_end@GOT.w, %a5])
|
yann@1
|
125 |
- | See if we were run as a command with the executable file
|
yann@1
|
126 |
- | name as an extra leading argument.
|
yann@1
|
127 |
- move.l ([_dl_skip_args@GOT.w, %a5]), %d0
|
yann@1
|
128 |
- | Pop the original argument count
|
yann@1
|
129 |
- move.l (%sp)+, %d1
|
yann@1
|
130 |
- | Subtract _dl_skip_args from it.
|
yann@1
|
131 |
- sub.l %d0, %d1
|
yann@1
|
132 |
- | Adjust the stack pointer to skip _dl_skip_args words.
|
yann@1
|
133 |
- lea (%sp, %d0*4), %sp
|
yann@1
|
134 |
- | Push back the modified argument count.
|
yann@1
|
135 |
- move.l %d1, -(%sp)
|
yann@1
|
136 |
- # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)
|
yann@1
|
137 |
- pea 8(%sp, %d1*4)
|
yann@1
|
138 |
- pea 8(%sp)
|
yann@1
|
139 |
- move.l %d1, -(%sp)
|
yann@1
|
140 |
- move.l ([_dl_loaded@GOT.w, %a5]), -(%sp)
|
yann@1
|
141 |
- jbsr _dl_init@PLTPC
|
yann@1
|
142 |
- addq.l #8, %sp
|
yann@1
|
143 |
- addq.l #8, %sp
|
yann@1
|
144 |
- | Pass our finalizer function to the user in %a1.
|
yann@1
|
145 |
- move.l _dl_fini@GOT.w(%a5), %a1
|
yann@1
|
146 |
- | Initialize %fp with the stack pointer.
|
yann@1
|
147 |
- move.l %sp, %fp
|
yann@1
|
148 |
- | Jump to the user's entry point.
|
yann@1
|
149 |
- jmp (%a4)
|
yann@1
|
150 |
- .size _dl_start_user, . - _dl_start_user
|
yann@1
|
151 |
+ .text\n\
|
yann@1
|
152 |
+ .globl _start\n\
|
yann@1
|
153 |
+ .type _start,@function\n\
|
yann@1
|
154 |
+_start:\n\
|
yann@1
|
155 |
+ move.l %sp, -(%sp)\n\
|
yann@1
|
156 |
+ jbsr _dl_start\n\
|
yann@1
|
157 |
+ addq.l #4, %sp\n\
|
yann@1
|
158 |
+ /* FALLTHRU */\n\
|
yann@1
|
159 |
+\n\
|
yann@1
|
160 |
+ .globl _dl_start_user\n\
|
yann@1
|
161 |
+ .type _dl_start_user,@function\n\
|
yann@1
|
162 |
+_dl_start_user:\n\
|
yann@1
|
163 |
+ | Save the user entry point address in %a4.\n\
|
yann@1
|
164 |
+ move.l %d0, %a4\n\
|
yann@1
|
165 |
+ | Point %a5 at the GOT.\n\
|
yann@1
|
166 |
+ lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5\n\
|
yann@1
|
167 |
+ | Remember the highest stack address.\n\
|
yann@1
|
168 |
+ move.l %sp, ([__libc_stack_end@GOT.w, %a5])\n\
|
yann@1
|
169 |
+ | See if we were run as a command with the executable file\n\
|
yann@1
|
170 |
+ | name as an extra leading argument.\n\
|
yann@1
|
171 |
+ move.l ([_dl_skip_args@GOT.w, %a5]), %d0\n\
|
yann@1
|
172 |
+ | Pop the original argument count\n\
|
yann@1
|
173 |
+ move.l (%sp)+, %d1\n\
|
yann@1
|
174 |
+ | Subtract _dl_skip_args from it.\n\
|
yann@1
|
175 |
+ sub.l %d0, %d1\n\
|
yann@1
|
176 |
+ | Adjust the stack pointer to skip _dl_skip_args words.\n\
|
yann@1
|
177 |
+ lea (%sp, %d0*4), %sp\n\
|
yann@1
|
178 |
+ | Push back the modified argument count.\n\
|
yann@1
|
179 |
+ move.l %d1, -(%sp)\n\
|
yann@1
|
180 |
+ # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)\n\
|
yann@1
|
181 |
+ pea 8(%sp, %d1*4)\n\
|
yann@1
|
182 |
+ pea 8(%sp)\n\
|
yann@1
|
183 |
+ move.l %d1, -(%sp)\n\
|
yann@1
|
184 |
+ move.l ([_rtld_global@GOT.w, %a5]), -(%sp)\n\
|
yann@1
|
185 |
+ jbsr _dl_init@PLTPC\n\
|
yann@1
|
186 |
+ addq.l #8, %sp\n\
|
yann@1
|
187 |
+ addq.l #8, %sp\n\
|
yann@1
|
188 |
+ | Pass our finalizer function to the user in %a1.\n\
|
yann@1
|
189 |
+ move.l _dl_fini@GOT.w(%a5), %a1\n\
|
yann@1
|
190 |
+ | Initialize %fp with the stack pointer.\n\
|
yann@1
|
191 |
+ move.l %sp, %fp\n\
|
yann@1
|
192 |
+ | Jump to the user's entry point.\n\
|
yann@1
|
193 |
+ jmp (%a4)\n\
|
yann@1
|
194 |
+ .size _dl_start_user, . - _dl_start_user\n\
|
yann@1
|
195 |
.previous");
|
yann@1
|
196 |
|
yann@1
|
197 |
/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
|
yann@1
|
198 |
@@ -251,7 +251,7 @@
|
yann@1
|
199 |
found. */
|
yann@1
|
200 |
break;
|
yann@1
|
201 |
if (sym->st_size > refsym->st_size
|
yann@1
|
202 |
- || (sym->st_size < refsym->st_size && _dl_verbose))
|
yann@1
|
203 |
+ || (sym->st_size < refsym->st_size && GL(dl_verbose)))
|
yann@1
|
204 |
{
|
yann@1
|
205 |
extern char **_dl_argv;
|
yann@1
|
206 |
const char *strtab;
|