-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
596 lines (564 loc) · 26.6 KB
/
ChangeLog
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
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
Changes since CEXP-2.3.1
20191204:
- elfsyms.c: recent gcc generates 'main' as a shared object.
When loading the main symbol table the symbols must be relocated.
Changes since CEXP-2.3.0
20180320:
- cexplock.c: rhel6 needs #define _XOPEN_SOURCE 500
- Makefile.am: improve out-of-sourcetree builds
Changes since CEXP-2.2
20180319:
- Compile __gnu_Unwind_Find_exidx() only if USE_LOADER (and arm)
20171021:
- port to rtems-4.12 (recent libbsd)
- cexpmod.c: made __gnu_Unwind_Find_exidx a weak alias
There could be multiple versions and an application
can provide a global routine that iterates over multiple
library-provided versions.
- bfdstuff.c: must look up symbol even if not undefined in order to locate veneer info
- updated libtecla (recent autotools)
- pmbfd FIXED wrong offset calculation (veneer in arm mode)
20171017:
- Use rtems cache flushing from rtems/rtems/cache.h when available
20171016:
- Reworked veneer support.
Veneers themselves are now generated by pmbfd.
Every loaded object (+ system table) calls cexpSymTblFixup()
which in-turn calls pmbfd_make_veneers() to create veneers
and attach them to the symbol's 'xtra' field.
When such a symbol is referred by a relocation then the
extra info is passed to pmbfd_perform_reloc() where it
can be used to locate a proper veneer.
- elfsyms.c: never uses loader; removed cexpSymFixup
-> because new implementation uses pmbfd
- FIX - cexpsegs.c: fixed missing return value upon success (cexpSegsAllocOne())
- FIX - cexpsegs-alloc.c: fixed incorrect number of segments
- cexpmod.c: code which refers to segments if USE_LOADER is configured only
- Renamed cexpFixupSymTbl->cexpSymTblFixup (for consistency)
- Changed 'help' field in symbol struct to a more generic pointer.
Where desired we can attach 'extra' struct where we can hold veneer
info; help is then reached via double indirection.
- CHANGE: respect GLOBAL symbol flag; only relocate against global symbols
- moved cexpSegsGet() to cexpsegs.c
- Added cexpFixupSymTbl() as a hook for creating veneers
- Support for veneer segment; support for allocating/deleting just a single segment
- Deleted obsolete cexpsegs-dflt.c
- cexpsegs-alloc.c: don't use RTEMS if no text region configured
- Added missing default setting for enable_text_segment
- ARM support for exidx sections
ARM uses yet a different way to unwind exceptions...
Global constructors also have a slightly different naming pattern.
- Consolidated segments; always use text+data
On some platforms they use separate allocators
on others the same allocator is used for both
segments.
- updated pmbfd (reworked arm relocs)
- Renamed cexpsegs-powerpc-rtems.c -> cexpsegs-alloc.c
20170209:
- use pmbfd submodule
2016/06/24:
- bfdstuff.c: more debugging messages; removed sanity test with the
_etext, _edata symbols since they are not present in modern RTEMS
(arm).
2016/06/24:
- cexplock.h, cexplock.c, configure.ac: made --enable-pthreads the default.
task variables (formerly used by context.h) are no longer supported by
RTEMS.
However, the migration to pthread also revealed a problem: posix rwlocks
cannot be used because they don't allow a writer thread to also obtain the
reader lock. Thus we now always use the cexp RW locks.
2016/06/21:
- bfdstuff.c: pass pmbfd_relent_t to pmbfd_perform_relocation
(preparation for ARM).
2015/04/17:
- recent bison needs %lex-param instead of #define YYLEX_PARAM
Thanks to Anton Derbenev (BNL) for reporting the problem (lexer
was not passed parser-context argument which led to a crash).
2014/08/18:
- bison now wants %pure-parser instead of %pure_parser.
2014/03/06:
- 64-bit issue: 0 is not always a NULL pointer! When passing to a varargs
function then pass ((void*)0) and NOT simply 0.
2014/02/24:
- updated README to mention *sparc support* which is now *available* in pmbfd.
Changes since CEXP-2.1
2013/01/28:
- removed libtecla/Makefile (see next note) - conflicts with autotool-generated
version.
- renamed Makefile->makefile; Makefile in EXTRA_DIST results in
the auto-generated Makefile (in the build-directory) to be distributed;
even if we say EXTRA_DIST+=$(srcdir)/Makefile :-(
- configure.ac: FIXED ill written bash conditional which resulted
in binutils/libiberty always being configured (event when not present
-> error).
- binutils-2.23.diff: added hunk which fixes bfd/coffcode.h (missing
#include directive).
- configure.ac: DONT configure 'binutils' but configure individual
subdirectories: binutils/libiberty, binutils/bfd, binutils/opcodes.
2013/01/23:
- INSTALL: document --enable-pthreads
- cexp.c: renamed argv[0] to "cexpsh" when called from cexpsh()
wrapper.
- cexp.c: don't call 'hello' if there is a script or command
string.
- cexp.c: don't ever become interactive after script or command
string from a nested call of cexpsh.
- binutils-2.23.diff: added patch for ppc-dis.c which takes out
stuff which relies on elf-bfd. pmbfd could add an 'owner' member
to asection but it seems overkill just to support the PPC_VLE
dialect in the very unlikely case of a non-ppc-elf target.
- configure.ac: create 'binutils/bfd/bfd_stdint.h' (needed by
binutils-2.13-opcodes.
2013/01/17:
- elfsyms.c, cexpsymsP.h, rshload.c: added fourth argument to
rshLoad(): a 'long' pointer where the number of bytes read
is stored.
- elfdlmap.c, elfsyms.c, xsyms.c: silenced compiler warnings.
- context.h: silenced compiler warnings (include ansidecl.h when
appropriate).
- cexpsyms.c: don't print warning when removing redundant symbols
with different addresses; seems they can point to plt and executable...
- cexpsegs-powerpc-rtems.c: silenced compiler warnings.
- cexpmod.c: silenced compiler warnings. BUGFIX: cexpSymLkAddrIdx()
returned 'margin' instead of symbol table index.
- cexp.c: silenced compiler warning
- bfd-disas.c: silenced compiler warning (printf format for pointer)
- INSTALL, binutils-2.23.diff, configure.ac: Updated; can now use
binutils-2.23
- configure.ac: added help info (--disable-loader enables support
for dynamic symbols).
2013/01/16:
- cexpmod.c, cexpsymsP.h, elfdlmap.c, elfsyms.c, rshload.c,
xsyms.c, cexpsegs-powerpc-rtems.c:
Fixed compiler warnings.
- BUGFIX: cexpmod.c. segment pointer in module structure was
dereferenced unconditionally but it can be NULL. Added
respective checks.
- cexpmod.h, cexpmodP.h: moved cexpSymLkAddrIdx() from public to
private header; added new cexpSymLkAddrRange().
- bfdstuff.c, cexpmod.c, cexpsyms.c, cexpsymsP.h, elfsyms.c:
Added routine 'cexpIndexSymTbl()' for constructing the address
index table explicitly. This is now called after the symbol
table has been built. Memory for aindex is not allocated at
module creation but only when an index table is built.
- cexpmod.c: BUGFIX - let cexpSymLkAddrIdx() look in all modules
for a given address and don't break as soon as a close address
is found but keep searching and return the closest one.
If printing is required then info from all modules is dumped.
- cexpsyms.c: BUGFIX - sometimes the same symbol can be present
in an executable's symbol table AND dynamic symbol table
(ELF executable). This causes problems when help tables are
added because only one instance ends up with the help info.
Help is added searching for address whereas symbol lookup
is by name. The order in which results are found (for same
key) is undefined - hence the problem...
We mitigate this by eliminating redundant symbols after sorting
them.
2013/01/14:
- libtecla/hash.c, libtecla/keytab.c, cexp.c, cexp.y, bfdstuff.c,
rshload.c, cexpmod.c:
silenced compiler warnings by casting chars to ints when using
ctype.h (isspace & friends), removing unused stuff etc.
2013/01/09:
- cexp.y, cexpsyms.c, ctyps.c, ctyps.h: preliminary support for
'int' type. Missing pieces are marked with an /* INTFIX */ comment.
2013/01/09:
- Makefile.am: No need to link the demo statically. With the new
shared library support the linux demo works actually better when
linked dynamically.
2013/01/09:
- bfdstuff.c, elfsyms.c, cexp.c, cexp.h:
!!!! API CHANGE of cexpSearchFile() !!!!
(but this routine is probably not used outside of cexp itself).
No longer use a char ** argument to pass a filename in and the
resolved pathname out. This is ugly and creates conflicts when
we qualify the filename arg 'const'. See cexp.h for the new
semantics.
- elfsyms.c, cexpmodP.h, cexpmod.c, cexp.c, cexp.h, bfdstuff.c:
added 'const' to string arguments to
cexpSlurpElf(), cexpLoadFile(), cexpModuleFindByName(),
cexpModuleDumpGdbSectionInfo(), lkup(), cexpModuleLoad(),
cexpModuleName().
2013/01/09:
- getopt/mygetopt_r.h, getopt/mygetopt_r.c: declare string argument
'optstr' as 'const'.
2012/12/03:
- elfdlsyms.c: BUGFIX: must handle the case where both, HASH and GNU_HASH
are present. Code gave preference to HASH but later checked for GNU_HASH
and used incomplete information (hhdr).
2012/07/17:
- ctyps.h, ctyps.c: introduced UInt type (not used yet). Use designated
array initializers when building type converter matrix.
- cexpsyms.c: BUGFIX - _cexp_addrcomp() cannot just return 'int'
difference between pointers. Result is wrong for e.g.,
(void *) 1 - (void*)(-1) or if pointers are larger than 'int'.
We now do explicit pointer comparison.
2012/07/16:
- Makefile.am, configure.ac, elfsyms.c, elfdlsyms.c elfdlsyms.h:
added support for adding dynamic symbols of all dependent shared
libraries (currently linked to executable). This needs GNU
extension dl_iterate_phdrs() from link.h
- cexpsyms.c: BUGFIX - must not add 'nentries' when computing aindex
array index.
2012/07/16:
- cexpmod.c: BUGFIX - addrInModule dereferenced 'segs' which may be NULL if
loader is disabled. Added checks for USE_LOADER.
2012/07/12:
- cexpsyms.c, cexpsymsP.h:
o added cexpNewSymTbl(), cexpSortSymTbl(), cexpAddSymTbl().
These allow for constructing a single symbol table from
multiple external tables.
o Support re-using external strings w/o copying them.
- elfsyms.c: try pmelf_mapstrm() first and fall back on pmelf_newstrm.
- elfsyms.c:
o undef USE_ELF_MEMORY (but copy to memory if loading via rsh)
o use cexpSearchFile() to locate symbol file
- xsyms.c:
o added option to accept undefined symbols.
o check return value of pmelf_newstrm().
- Makefile.am, configure.ac, cexp.c, cexplock.h, cexplock.c, cexpmod.c,
context.h:
Implemented support for using pthread mutexes, rwlocks and thread-specific
keys to support multithreaded CEXP on pthread platforms.
Must be enabled at configure-time by giving --enable-pthreads.
2012/07/11:
- cexp.c: BUGFIX - cexpSearchFile() must not free 'thename' if it is handed
out to the user (ugly API anyways).
- cexpsyms.c, rshload.c, Makefile.am: moved rshLoad() into separate file.
2012/06/28:
- cexp.c, configure.ac: added '-i/-I' options and --enable-interactive-default
- cexp.c: fall back to trying argv[0] as a symbol file if no -s given and
no internal symbol table is found.
- configure.ac: for linux/host demo, link terminfo (libtinfo) if necessary/available.
Changes since CEXP-2.0.beta
2011/10/10:
- libtecla/Makefile.am: add manpages to EXTRA_DIST and MAINTAINERCLEANFILES.
2011/10/10:
- Makefile.am: add cxxdummy to EXTRA_DIST.
- Makefile.am: add cpptest contents explicitly to EXTRA_DIST (instead of
entire subdir which would include CVS/
2011/08/04:
- Makefile.am: export host_alias, host_os, and host_cpu.
2011/07/15:
- cexp.c: set terminal to VMIN/VTIME=1/0 in native readline (no readline, no tecla).
2011/07/15:
- Makefile.am: export rtems_bsp, RTEMS_BSP, enable_rtemsbsp, package_subdir
variables so third-party makefiles 'inherit' them (in case any is embedded
in an installation path/prefix).
2010/06/10:
- configure.ac: check for multilibbed cpukit only if host_os is RTEMS.
2010/05/06:
- Makefile.am:
o enforce linking undefined symbols needed by test modules (demo program)
o link demo with CXX
- bfdstuff.c: BUGFIX -- Ignore relocations that refer to a symbol in a
discarded linkonce section.
This should also fix a problem reported by Luciano Piccoli where
a module refused to load because the .eh_frame section
had a relocation referring to the section name of a discarded
linkonce. Since that section had been folded into .text in
the main executable it could not be found.
During testing I also found that just relocating to the
previous instance of a linkonce section is incorrect because
to compiler would sometimes generate slightly different code
resulting in different section sizes (original vs. discarded
linkonce). Unless the relocation referring the discarded linkonce
is ignored (-> value 0 which is in turn ignored by the libgcc
run-time code) a bad/incorrect exception frame could be registered.
- cexp.c: Added 'sigaction' handler which prints offending SIGSEGV address.
- cexpmod.c:
o BUGFIX -- 'addrInModule()' algorithm skipped system module which
is never associated with any segment. Thus 'lkaddr()' never found
anything located in the main executable :-(
o BUGFIX -- when a module is unloaded (linux demo) then we cannot
just revoke 'executable' memory permission; the module memory is
not page aligned and therefore 'x' could be removed from adjacent
'live' module. Just always leave executable permission on...
- configure.ac, Makefile.am, cpptest/*.c, cpptest/*.cc, cpptest/Makefile.am,
cpptest/st.test: Added test code. So far, loading of common symbols,
linkonce sections, c++ exceptions and constructor/destructor ordering
are tested.
- configure.ac: Check for availability of HAVE_SIGNALS, HAVE_SIGINFO
on non-rtems systems.
- m4/rtems-tools.m4: Look for 'nm' utility, too.
2010/03/17:
- bfdstuff.c: Completely ignore zero-sized sections marked SEC_ALLOC
(by removing the SEC_ALLOC flag) so that no section symbol is
recorded. Since no space is allocated for such a section the
value of a section symbol would be invalid and this results in
gdb confusion...
2010/02/17:
- libtecla/getline.c: always include <sys/ioctl.h> (also under __rtems__)
in order to get TIOCGWINSZ.
Maintain 'signals_overridden' flag also under __rtems__.
2010/02/07:
- libtecla/configure.in: added --enable-ansiterm configure option (enabled
by default for RTEMS if not explicitly disabled and disabled by default
on other OSes) to avoid dependency on curses/termcap (assuming ANSI
terminal).
2009/12/14:
- BUGFIX: cexpsh("script") would not terminate because of missing 'else'
in nested if (which should have been 'else if'). This was a new bug
introduced with the '-c' option.
2009/12/04:
- fixed all reduce/reduce and some shift/reduce conflicts in
the grammar.
- added stdio redirection.
- deprecated '<' for sourceing scripts; should now use '.'
- now have a dedicated FILE descriptor for parser error messages
(can be passed to cexpCreateParserCtx())
- added new callback argument to cexpCreateParserCtx() which
allows the user to be notified when stdio redirection occurs.
- added new '-c' option instructing cexpsh() to parse the option
string argument.
2009/12/02:
- pmelf: bugfix in PPC attribute matcher;
- pmelf: added support for Tag_GNU_Power_ABI_Struct_Return.
- bfdstuff.c: added undocumented global variable
'_cexpForceIgnoreObjAttrMismatches' which can be set to nonzero
in order to force the BFD loader to ignore object attribute
mismatches.
2009/06/25:
- pmelf: added basic support for SPARC
Changes since CEXP-1.6.beta
2008/10/8:
- Removed most targets from toplevel 'Makefile' (were broken by latest
changes). User must use 'configure' him-/herself.
2008/10/8:
- Added support for loading modules with weak undefined symbols
(we treat them like newly defined COMMON symbols).
2008/10/7:
- Added checks dealing with zero-sized memory segments.
- Added support for getting result + status of last evaluation.
- Set special user-var 'ans' to result of last successful
evaluation.
2008/10/7:
- BUGFIX: floating-point numbers w/o fractional part (e.g., 20. 0.) were
not scanned correctly.
2008/10/4:
- Added changeable prompt (but no smart substitutions available [yet])
2008/7/25:
- With multiple memory regions/segments cexpSymLkAddrIdx() (and derived functions)
cannot simply look at the first+last entry in the 'aindex' to determine if
a given module contains an address location. Added code that checks the module's
memory segment boundaries.
2008/7/25:
- Made (PPC) text segment size a 'configure' option '--enable-text-segment'.
2008/7/25:
- Disable PPC/SYSV-specific method of passing floating-point arguments
to called function if _SOFT_FLOAT is defined (cannot pass in FP regs,
in this case).
2008/7/23:
- added support for multiple memory segments. PPC text sections can
now be loaded into dedicated text segment located below 32M boundary.
(Total size of all text in all modules is still limited to 32M.)
- 'cplusplusified' public headers.
Changes since CEXP-1.5
2008/4/29:
- Added toplevel Makefile rules 'rtemsbsp'/'rtemsbsp-install' which
read Makefile.inc and configure the package using CPU flags and
setting prefix/exec_prefix/includedir to match std. RTEMS layout.
2008/4/17:
- new LICENSE; we now use the SLAC license instead of the EPICS open
license.
2008/4/16:
- removed support for libelf; we now use pmelf when appropriate.
- added multilib support. libcexp, libtecla, libspencer_regexp and
libpmbfd/libpmelf can be built as multilibs.
NOTE: 'real' BFD does not support multilibs and hence we cannot
use them if BFD is to be used.
2008/4/15:
- added Makefile.am/configure.ac magic to support new pmelf.
FIXME: THIS NEEDS CLEANUP
- xsyms-bfd.c now also can use pmbfd/pmelf. (But for binary symbol
table generation objcopy --extract-symbol should be used.)
2008/4/15:
- (cexp.c): improved trivial 'readline' emulation (when no tecla or readline
is configured) by switching terminal to RAW mode; we can then use backspace
for erasing chars, CTRL-U to kill a line, ...
2008/4/7:
- (bfdstuff.c):
o access members of asection struct only through bfd_get_section_xxx()
and bfd_set_section_xxx() macros.
o changed code to read ELF specific symbol parameters from macros
into inlines and renamed them.
o BUGFIX: I believe the alignment of new common symbols was not
determined correctly; the alignment is stored in the symbol value
(not size). We now use internal_elf_sym->st_value as the alignment.
o silenced some compiler warnings (bad printf format string) by
using l modifier and explicit casts to long variants.
o NEW: Added test when loading common symbols to make sure that the
alignment and size of a common symbol with the same name defined
in a new module matches the respective parameters of an existing
definition (created by previously loaded module).
o BUGFIX: (bug triggered only if DEBUG & DEBUG_COMMON) when printing
name of a new common symbol we must not use the name field of
the newly created empty symbol (which is NULL) but the name of
the existing symbol which is about to be cloned.
o removed bfd_get_arch/bfd_get_mach and conversion to printable
string. Seems sets these to 'unknown' anyways if we don't explicitly
tell it what arch/mach we are using (had hoped BFD tells us what
it learns from info in the file to be loaded).
2008/3/22:
- Fixed compiler warnings:
* yyerror() now takes a 'const char *' argument.
* declare 'ioctl' in rtems_hackdefs.h
2008/3/21:
- Fixed potential array overflow when composing cexp_main arglist.
Thanks to smart gcc-4.3.0 who issued a warning :-)
2008/3/20:
- (build system): added --disable-libelf configure option
which allows for building a system completely w/o loader
-- needs a built-in symbol table, however.
2008/1/6:
- (xsyms/libelf) when cloning sections we should not just copy
Elf_Data objects; the BSD libelf implementation has private
fields beyond the public ones and these private fields.
in particular, the 'data is malloced' flag) must not be
copied blindly. Hence, we just copy the public (and relevant)
fields explicitly.
2007/10/16:
- more recent gcc/gas use ELF section 'COMDAT' groups for 'linkonce'
(rather than 'gnu.linkonce.xxx' sections).
We now handle these (and do not re-load such groups anymore).
Section symbols of group members now point to the instance first
loaded.
Note that prior to this change, 'linkonce groups' were loaded
multiple times (but relocs always used the first instance, i.e.,
we wasted memory but incurred no real problem).
The old behavior for sections named '.gnu.linkonce.xxx' is still
supported.
2007/10/08:
- added --with-newlib, --disable-multilib to configure options
(when using top-level Makefile)
2007/10/08:
- replaced autoconf check which defined NO_THREAD_PROTECTION by
simple #ifdef __rtems__ test.
2007/10/08:
- cache some more BFD info for the disassembler to make binutils-2.18
work.
2007/10/08:
- libtecla 'install' failed to create man3, man4, ... subdirs.
- add '-static' compiler flag when building the demo with gcc
2007/2/14:
- ported libtecla-1.6.1
2005/12/16:
- Bugfix: unary '-' operator on 'double' numbers scrambled the
number's bit pattern (reported by Peter Dufault).
2005/12/7:
- Renamed 'cexp()' to 'cexpsh()' to avoid the name clash with
POSIX cexp() (complex exponential). This is an API change -
all applications calling 'cexp()' need to call 'cexpsh()' now.
- Removed 'malloc()' declaration from spencer_regexp/regexp.c.
#include <stdlib.h> instead (silenced warning).
- Removed 80 char length limitation on string constants (was a
parser limit). Now use a 1000 char buffer that is part of the
parser context to assemble such strings (was 80 char buffer on
stack).
2005/11/5:
- Updated README to explain how to use libcexp from a program.
2005/11/4:
- Created '--disable-opcodes' configure option. Updated README
to give info about linker helper script generation with
xsyms -C.
- Use clean-local: target to remove libelf local install dir.
- elfsyms.c fix; remove obsolete free_regexp leftover.
- updated tested configurations in INSTALL.
2005/11/3:
- Silenced compiler warnings (vars.c) by using appropriate 'lh'
type. Use my_sigismember() to avoid conflict with declaration
in header. Silenced more warnings.
- Removed strncmp() from libiberty.
Changes since CEXP-1.4.beta ("Helvetia")
2004/10/29:
- BFD file loader now searches PATH environment variable for object
files (non-absolute names only, of course).
- plugged a few minor memory leaks
2004/5/20:
- New syntax: '< scriptfile' implemented
- Implemented 'builtin' symbol tables. 'xsyms' can help generating
a symbol table in C source form. (Similar support was added to
the 'ldep' tool as well).
- NOTE: THE INTERFACE DEFINED IN cexpHelp.h HAS SLIGHTLY CHANGED
(help tables now need a 'module-specific' name qualifier). Thus,
more than one table can be defined in a single file. It makes
future 'directory' support easier.
2004/3/5:
- NOTE: THE INTERFACE TO cexpModuleInfo() (order of parameters)
HAS CHANGED, SORRY.
- Added support for m68k cache flushing (RTEMS only)
- Help supporting GDB (in the future - not implemented yet) by
keeping section address info. Using the 'gencore.c' utility
(distributed separately - mail me), we can use GDB to analyze
core dumps already, however. Added cexpModuleDumpGdbSectionInfo().
- added verbosity level to cexpModuleInfo() [--> interface for
that routine *changed* ]
- small grammar bugfix: declaration of a new variable should
only be executed if expression evaluation is not disabled
(as a result of && ||). Impact is probably none as variable
declarations are not allowed in such a context anyhow.
- added a magic string to allow version checking of core files
and binaries etc.
Changes since CEXP-1.3.beta ("good friday")
2003/7/31:
- added info about 'xsym' cross tool and updated configure
magic to do real cross-builds for 'xsyms' (especially if
using bfd. On a ELF host, it's OK to use a native libelf
to build 'xsyms' for any ELF(32) target.
- fixed BFD xsyms '.sym' extension handling.
- added a architecture check to the BFD loader after getting
obscure errors when trying to load x86 objects to a PPC
system :-(
- hacked libtecla so the 'newline' action passes nonprinting
characters which ended the line along to the application.
This can be used to implement 'hotkeys' (as used by the SVGM
bootloader).
- simplified HELP macro usage.
2003/7/1:
- moved more routines to the public interface:
cexpModuleName(),
cexpModuleFindByName(),
cexpModuleInfo(),
cexpSymLookup(),
cexpSymLkAddr(),
- added routines to access CexpSym internals:
cexpSymName(),
cexpSymValue()
2003/5/20:
- scanned README for 'who' constructs
- bfdstuff.c: print more verbose relocation error messages
- teclastuff.c: bugfix - searching for identifier start character
must skip ISIDENTCHAR() a la 'cexp.y'
this fixes incorrect 'tab completion' when symbol names contain
digits etc.
2003/4/25:
- added a warning (ELF only) when we find a ".fixup", ".got" or ".got2"
section - they probably compiled a module with -fPIC...
Changes since CEXP-1.2.beta ("valentine")
2003/4/23:
- case handling for gcc/libc with __dso_handle and no __cxa_finalize was
incorrect
- assert ( ! (presence of __cxa_finalizer without __dso_handle) )
- reject presence of __dso_handle without __cxa_finalizer with
a warning
- mandrake linux 9.1 / gcc-3.2.2 uses __cxa_atexit / __cxa_finalize
for C++ static destructors.
We now support __cxa_atexit / __cxa_finalize :-)
2003/4/19:
- implemented cexpResizeTerminal()
2003/4/18:
- use $(BISON) and $(AUTOxxx) variables with obvious defaults
- fixed solaris /bin/sh incompatibility issue
2003/4/16:
- unbundled 'libelf' and provided a BFD based
version of 'xsyms'.
- Toplevel 'Makefile' with rules 'prep' and 'xsyms'
to call autotools, bison etc. and trivial 'xsyms'
compilation (needs host-installed libelf or libbfd),
respectively.
- made spencer_regexp library reentrant
- use a wrapper to invoke regexp. Could use 'libiberty'
implementation but it is ~25k bigger and would need
some wrapping work.
- catch attempts to use cexpModuleLoad() when built
with LIBELF.