1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
|
2010-06-14 Mark Hatle <mark.hatle@windriver.com>
* Integrate prelinker/cross-prelinking patches
2009-08-06 Joseph Myers <joseph@codesourcery.com>
* src/dwarf2.c (dwarf2_write_le64, dwarf2_write_be64): Shift by 56
not 58 for MSB.
2009-03-19 Joseph Myers <joseph@codesourcery.com>
Issue #4626
* src/cache.c, src/dso-readonly.c, src/dso.c, src/execstack.c,
src/gather.c, src/layout.c, src/mapfile.c, src/verify.c: fsync
file descriptors before closing them.
2008-09-23 Joseph Myers <joseph@codesourcery.com>
* src/arch-arm.c (arm_prelink_conflict_rela): Correct
R_ARM_TLS_TPOFF32 handling.
2008-09-18 Joseph Myers <joseph@codesourcery.com>
* src/ld-libs.c (reloc_type_class, determine_tlsoffsets): Handle
SPARC.
* src/arch-sparc64.c (sparc64_prelink_rela,
sparc64_prelink_conflict_rela, sparc64_undo_prelink_rela,
sparc64_reloc_class): Handle TLS relocations.
(PL_ARCH(sparc64)): Update mmap_base and mmap_end for
TASK_UNMAPPED_BASE change to 0xfffff80100000000.
2008-10-02 Maciej W. Rozycki <macro@codesourcery.com>
* src/arch-mips.c (mips_prelink_reloc): Do not complain about
TLS_DTPMOD32 or TLS_DTPMOD64 relocations found in executables.
2008-09-03 Maciej W. Rozycki <macro@codesourcery.com>
* src/prelink.h (Elf64_Byte): New definition.
(R_MIPS_TLS_DTPMOD64): New macro.
(R_MIPS_TLS_DTPREL64): Likewise.
(R_MIPS_TLS_TPREL64): Likewise.
(RSS_UNDEF): Likewise.
(PL_ARCH): Use plarch_##F as the name of the struct in all
variants.
* src/reloc-info.c: New file.
* src/reloc-info.h: Likewise.
* src/arch-mips.c (mips_buf_read_addr): New function.
(mips_buf_write_addr): Likewise.
(mips_arch_adjust): Replace calls to buf_read_une32() and
buf_write_ne32() with ones to mips_buf_read_addr() and
mips_buf_write_addr() respectively.
(mips_read_addend): Rename to...
(mips_read_32bit_addend): ... this.
(mips_write_addend): Rename to...
(mips_write_32bit_addend): ... this.
(mips_read_64bit_addend): New function.
(mips_write_64bit_addend): Likewise.
(mips_adjust_reloc): Handle 64-bit REL relocations. Use
reloc_r_sym() and reloc_r_type() in place of GELF_R_SYM() and
GELF_R_TYPE() respectively.
(mips_prelink_64bit_reloc): New function.
(mips_prelink_reloc): Handle 64-bit REL and GLOB_DAT relocations.
Handle TLS_DTPMOD64, TLS_DTPREL64 and TLS_TPREL64 relocations.
Use reloc_r_sym() and reloc_r_type().
(mips_prelink_rel): Handle 64-bit REL relocations. Use
reloc_r_sym(), reloc_r_type() and reloc_r_info_ext() (replacing
GELF_R_INFO()).
(mips_prelink_conflict_reloc): Handle 64-bit REL relocations.
Handle TLS_DTPMOD64, TLS_DTPREL64 and TLS_TPREL64 relocations.
Use reloc_r_sym(), reloc_r_type() and reloc_r_info_ext().
(mips_arch_prelink_conflict): Use mips_buf_read_addr(). Use
reloc_r_info_ext().
(mips_apply_conflict_rela): Handle 64-bit REL relocations. Use
reloc_r_type(). Use mips_buf_read_addr() and
mips_buf_write_addr().
(mips_apply_reloc): Handle 64-bit REL relocations. Use
reloc_r_sym() and reloc_r_type().
(mips_rel_to_rela): Handle 64-bit REL relocations. Handle
TLS_DTPMOD64, TLS_DTPREL64 and TLS_TPREL64 relocations. Use
reloc_r_sym() and reloc_r_type().
(mips_rela_to_rel): Handle 64-bit REL and GLOB_DAT relocations.
Handle TLS_DTPMOD64, TLS_DTPREL64 and TLS_TPREL64 relocations.
Use reloc_r_sym() and reloc_r_type().
(mips_need_rel_to_rela): Use data obtained with gelfx_getshdr() to
determine the size of a relocation entry. Use gelfx_getrel() to
retrieve them. Handle 64-bit REL relocations. Handle
TLS_DTPMOD64, TLS_DTPREL64 and TLS_TPREL64 relocations. Use
reloc_r_sym() and reloc_r_type() instead of ELF32_R_SYM() and
ELF32_R_TYPE() respectively.
(mips_reloc_class): Handle TLS_DTPMOD64, TLS_DTPREL64 and
TLS_TPREL64 relocations.
(mips_arch_prelink): Use mips_buf_read_addr() and
mips_buf_write_addr().
(mips_arch_undo_prelink): Likewise.
(mips_undo_prelink_rel): Handle 64-bit GLOB_DAT relocations. Use
reloc_r_sym(), reloc_r_type() and reloc_r_info_ext().
(mips64): New PL_ARCH.
* src/prelink.c (prelink_prepare): Handle SHT_MIPS_OPTIONS.
* src/conflict.c (conflict_rela_cmp_dso): New variable.
(conflict_rela_cmp): Use conflict_rela_cmp_dso and reloc_r_sym().
(get_relocated_mem): Use reloc_r_type().
(prelink_add_copy_rel): Use reloc_r_sym() and reloc_r_type().
(prelink_build_conflicts): Use reloc_r_sym(), reloc_r_type() and
reloc_r_info(). Pass dso to conflict_rela_cmp() through
conflict_rela_cmp_dso.
(prelink_find_copy_rela): Use reloc_r_type().
* src/cxx.c (remove_redundant_cxx_conflicts): Use reloc_r_sym(),
reloc_r_type() and reloc_r_info().
* src/ld-libs.c (do_rel_section): Use reloc_r_sym() and
reloc_r_type().
* src/Makefile.am (common_SOURCES): Add reloc-info.c and
reloc-info.h.
(prelink_rtld_SOURCES): Likewise.
* src/Makefile.in: Regenerate.
* configure.in: Check for the Elf64_Byte type. Require autoconf
2.50.
* configure: Regenerate.
2008-09-03 Maciej W. Rozycki <macro@codesourcery.com>
* src/arch-mips.c (mips_undo_prelink_rel): Fix formatting.
2008-09-03 Maciej W. Rozycki <macro@codesourcery.com>
* src/arch-mips.c (mips_init_local_got_iterator): Use ELF_T_ADDR
to determine the width of GOT entries.
(mips_init_global_got_iterator): Likewise.
2008-09-03 Maciej W. Rozycki <macro@codesourcery.com>
* src/data.c (buf_read_une##nn): Fix the width of the data
transfer used.
2008-03-06 Daniel Jacobowitz <dan@codesourcery.com>
* src/ld-do-lookup.h: Check for STO_MIPS_PLT on MIPS.
* src/ld-libs.c (reloc_type_class): Handle copy and PLT relocs.
* src/prelink.h (R_MIPS_TLS_DTPMOD32, R_MIPS_TLS_DTPREL32)
(R_MIPS_TLS_TPREL32, R_MIPS_GLOB_DAT): Remove duplicate definitions.
(R_MIPS_COPY, R_MIPS_JUMP_SLOT, STO_MIPS_PLT, DT_MIPS_PLTGOT)
(DT_MIPS_PLTNO, DT_MIPS_RWPLT): Define.
(DSO): Add info_DT_MIPS_PLTGOT.
* src/arch-mips.c (mips_prelink_reloc): Handle R_MIPS_JUMP_SLOT and
R_MIPS_COPY.
(mips_prelink_conflict_reloc): Handle R_MIPS_COPY.
(mips_apply_conflict_rela): Handle R_MIPS_JUMP_SLOT.
(mips_apply_reloc): Handle R_MIPS_JUMP_SLOT and R_MIPS_COPY.
(mips_rel_to_rela, mips_rela_to_rel): Handle R_MIPS_COPY.
(mips_need_rel_to_rela): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT.
Correct error message.
(mips_reloc_class): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT. Use
RTYPE_CLASS_VALID by default.
(mips_arch_prelink): Save .plt in gotplt[1].
(mips_arch_undo_prelink): Clear gotplt[1].
(mips_undo_prelink_rel): Undo R_MIPS_JUMP_SLOT relocations.
(PL_ARCH): Set R_COPY and R_JMP_SLOT.
* src/dso.c (read_dynamic): Save DT_MIPS_PLTGOT.
* src/dso-readonly.c (read_dynamic): ditto
2007-07-09 Daniel Jacobowitz <dan@codesourcery.com>
Issue #1816
* src/wrap-file.c (chroot_canon): Delete.
(sysroot_file_name): Use canon_filename.
(unsysroot_file_name): Make global.
(wrap_canonicalize_file_name): Delete.
* src/ld-libs.c (load_dsos): Use prelink_canonicalize.
* src/canonicalize.c (canon_filename): Make global. Add chroot,
allow_last_link, allow_missing arguments. Handle links inside
a chroot. Handle canonicalizing the current directory. Remove
debugging output.
(prelink_canonicalize): Update. Use unsysroot_file_name.
* src/prelink.h (wrap_canonicalize_file_name): Delete prototype.
2007-03-02 Sandra Loosemore <sandra@codesourcery.com>
* doc/prelink.8: Copy edit. Add entry for --root option. Update
list of unsupported systems.
2007-02-16 Daniel Jacobowitz <dan@codesourcery.com>
* src/prelink.h (sysroot_file_name): Declare.
* src/ld-libs.c (load_dsos): Take host_paths argument. Do not attempt
to canonicalize host filenames within the sysroot. Always set
canon_filename.
(process_one_dso): Update call to load_dsos. Do not redo call to
wrap_canonicalize_file_name.
2006-11-30 Mark Shinwell <shinwell@codesourcery.com>
* configure.in: Recognize --with-pkgversion and ---with-bugurl.
* src/Makefile.am: Pass package version and bug URL through
AM_CFLAGS, together with the new EXECSTACK_PROG.
* src/main.c: Use PKGVERSION and REPORT_BUGS_TO.
* src/execstack.c: Likewise. Also use EXECSTACK_PROG.
Mark Hatle <mark.hatle@windriver.com>
* src/ld-libs.c: Use PRELINK_RTLD_PROG, PKGVERSION and REPORT_BUGS_TO
* src/execstack.c: Use EXECSTACK_PROG in (argp_doc)
2006-11-30 Mark Shinwell <shinwell@codesourcery.com>
* wrap-file.c (wrap_stat_body): New.
(wrap_lstat64, wrap_stat64): Use wrap_stat_body.
2006-11-28 Mark Shinwell <shinwell@codesourcery.com>
* src/layout.c (layout_libs): Add assertion to check for buffer
overflow.
* src/ld-libs.c (find_lib_in_path): Add "machine" argument.
Skip libraries whose ELF machine type field does not match
that argument.
(find_lib_by_soname): Add "machine" argument. Pass it to
find_lib_in_path.
(load_dsos): Determine machine type of input DSO. Pass it
to find_lib_by_soname.
2006-11-28 Mark Shinwell <shinwell@codesourcery.com>
* src/gather.c (maybe_pie): New.
(gather_func): Use it.
2006-11-28 Mark Shinwell <shinwell@codesourcery.com>
* src/canonicalize.c: Add prelink.h include directive.
Use wrap_readlink and wrap_lstat64.
* src/prelink.h: Declare wrap_readlink.
* src/wrap-file.c (wrap_readlink): New.
2006-10-13 Daniel Jacobowitz <dan@codesourcery.com>
* src/execle_open.c (execve_open): Add an error message if execve
fails.
2006-10-03 Richard Sandiford <richard@codesourcery.com>
* configure.in (AC_CANONICAL_HOST): Remove in favour of...
(AC_CANONICAL_SYSTEM): ...this new directive.
(AC_ARG_PROGRAM): New directive.
* src/Makefile.am (AM_CFLAGS): Define PRELINK_PROG, PRELINK_RTLD_PROG
and EXEEXT.
(execstack_LDADD): Add -liberty.
* src/execstack.c (program_path, prelink_path): New variables.
(execstack_make_rdwr): Initialize prelink_path if it has not
been set yet. Use make_relative_prefix, PRELINK_PROG and EXEEXT
to get the full pathname of the prelink executable. Pass this path
to execl() as the name of executable file.
(main): Initialize program_path.
* src/main.c (argp_program_version, argp_doc): Use PRELINK_PROG as
the program name.
(main): Handle empty --rtld= arguments first. Always use
make_relative_prefix to work out the path of the defalt rtld
executable. Also use PRELINK_RTLD and EXEEXT for this purpose.
2010-06-14 Mark Hatle <mark.hatle@windriver.com>
* configure.in: Add option to disable selinux
* src/Makefile.am: Stop static linking
2007-08-08 Mark Hatle <mark.hatle@windriver.com>
* src/arch-mips.c: add /lib32/ld.so.1 as an alternative 32-bit linker
* src/ld-libs.c: add a check for MIPS n32, and adjust ld_dirs as
necessary
2007-10-11 Richard Sandiford <richard@codesourcery.com>
* src/space.c (find_readonly_space): If a new PT_LOAD header is needed,
first try removing a PT_NULL header.
2006-12-04 Mark Hatle <mark.hatle@windriver.com>
* Merge code from:
Richard Sandiford <richard@codesourcery.com>
* src/ld-libs.c (reloc_type_class): Handle EM_MIPS.
(do_mips_global_relocs): New function.
(handle_relocs_in_entry): Call it.
(determine_tlsoffsets): Handle EM_MIPS.
Richard Sandiford <richard@codesourcery.com>
* src/ld-libs.c (do_reloc): New function, split out from
do_rel_section. Take the symbol and relocation type as arguments.
(do_rel_section): Call it.
(handle_relocs_in_entry): New function.
(handle_relocs): Call it.
2006-12-04 Mark Hatle <mark.hatle@windriver.com>
* src/elf.h: Update to the latest version of elf.h for MIPS prelink
2006-12-01 Mark Hatle <mark.hatle@windriver.com>
* merge to 20061201 (r151)
* src/arch-arm.c: remove read_une32, write_ne32, buf_write_ne32,
buf_read_une32
* src/dso-readonly.c: sync to changes in src/dso.c
2006-08-18 Mark Hatle <mark.hatle@windriver.com>
* arch-arm.c: remove prelink_conflict_rela
* arch-arm.c: Add big-endian arm support, based on arch-sh.c
2006-08-17 Mark Hatle <mark.hatle@windriver.com>
* data.c, dso.c, prelink.h: when using elfutils/libelf, we need
to byte swap only if the type is ELF_T_BYTE.
* dso-readonly.c: add get_data prototype change for byteswapping
* ld-libs.c: add get_data prototype change for byteswapping
2006-08-10 Mark Hatle <mark.hatle@windriver.com>
* testsuite/Makefile.in: Allow testsuite to run using cross prelink.
Disable the run-time tests, but keep all basic
prelink testing.
* testsuite/ccx1.sh, testsuite/cycle1.sh, testsuite/cycle2.sh
testsuite/deps1.sh, testsuite/deps2.sh, testuite/functions.sh
testuite/layout1.sh, testuite/layout2.sh, testsuite/movelibs.sh
testsuite/quick1.sh, testsuite/quick2.sh, testsuite/quick3.sh
testsuite/reloc1.sh, testsuite/reloc2.sh, testsuite/reloc3.sh
testsuite/reloc4.sh, testsuite/reloc5.sh, testsuite/reloc6.sh
testsuite/reloc7.sh, testsuite/reloc8.sh, testsuite/reloc9.sh
testsuite/reloc10.sh, testsuite/reloc11.sh, testsuite/shuffle1.sh
testsuite/shuffle2.c, testsuite/shuffle2.sh, testsuite/shuffle3.sh
testsuite/shuffle4.sh, testsuite/shuffle5.sh, testsuite/shuffle6.sh
testsuite/shuffle7.sh, testsuite/shuffle8.sh, testsuite/tls1.sh
testsuite/tls2.sh, testsuite/tls3.sh, testsuite/tls4.sh
testsuite/tls5.sh, testsuite/tls6.sh, testsuite/tls7.sh
testsuite/undo1.sh: ditto
2006-08-09 Mark Hatle <mark.hatle@windriver.com>
* execstack.c: add WR versioning
* ld-libs.c: add argp option processing and WR versioning
* main.c: add WR versioning
2006-08-09 Mark Hatle <mark.hatle@windriver.com>
* ld-libs.c: Add --root argument to prelink-rtld
2006-08-09 Mark Hatle <mark.hatle@windriver.com>
* cross-prelink code merged and upreved
original code from:
MontaVista Software, Inc.
CodeSourcery, LLC.
* Makefile.am: add prelink-rtld, libiberty
* dso-readonly.c: new file based on dso.c
* gather.c: use cross-rtld
* get.c: use cross-rtld
* ld-do-lookup.h: Add ld-do-lookup.h from glibc
* ld-libs.c: add cross-rtld functionality
* ld-libs.h: ditto
* ld-lookup.c: ditto
* ld-lookup64.c: ditto
* main.c: Add rtld option
* prelink.h: add extern rtld variable
2006-08-09 CodeSourcery, LLC.
* main.c: if we modified /sbin/init, re-run init
2006-08-08 CodeSourcery, LLC.
* arch-arm.c: add ARM EABI support, dynamic_linker_alt
* src/dso.c: STT_ARM_TFUNC support
* src/get.c: ld-linux.so.3 to the list of ldso names
2006-08-08 CodeSourcery, LLC.
* gather.c: add new dynamic_linker_alt
* prelink.h: ditto
2006-08-08 MontaVista Software, Inc.
* main.c: Add relative sysroot support
2006-08-08 Montavista Software, Inc.
* Makefile.am: Add function wrapper support for sysroots
* main.c: add --root option
* cache.c, doit.c, dso.c, execstack.c, gather.c, get.c,
prelink.h, undoall.c, verify.c: Add functional wrappers for sysroot
* wrap-file.c: add function wrapper definitions
2006-07-28 Alexandre Oliva <aoliva@redhat.com>
* src/cache.c: Avoid SEGFAULT when sorting cache entries (#197451)
2006-07-21 MontaVista Software, Inc.
* prelink.c: add PRELINK_TIMESTAMP support
2006-07-21 MontaVista Software, Inc.
* dso.c: Don't adjust reloc for debug info
2006-06-30 Mark Hatle <mark.hatle@windriver.com>
* src/elf.h: Make available the elf.h file from glibc 2.3.6
2006-06-10 MontaVista Software, Inc.
* arch-sh.c: Fix R_SH_RELATIVE endian swap problem,
change max page size
|