-
Notifications
You must be signed in to change notification settings - Fork 3
/
ChangeLog
257 lines (243 loc) · 10.8 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
Changes since CEXP-2.0.beta
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.