The implication that %line allows NASM to digest cpp output is just
plain wrong, at least without additional intermediate processing. Be
a little more circumspect.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
nasm.c should respect the default debug format of the output format,
instead of replacing it with the first format in the list.
This is cleaner and allows the list to be sorted normally.
This commit rewrites commit 116994111b which was very fragile.
Minimize the TLS documentation examples (we don't need "dword" in a
mov from ebx, for example.) This is just to avoid user confusion.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Snapshot releases have *only* digits in the tail. "git describe"
produces tails that have digits in them, but aren't numeric.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Move all the version strings to a single compilation unit, ver.c; this
does not include the version macros, which are fed into macros.c.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Set default attributes for .tdata and .tbss sections
Implement new attribute 'tls' for arbitrary section names
Flag variables in sections with tls attribute with STT_TLS
Drop the data pointer, and instead assume the struct rbtree will be
embedded in a bigger data structure (to be extracted via
container_of()).
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
offsetof() is a C99 construct; provided here as an ersatz for older
systems.
container_of() is a nonstandard but highly useful construct, which
allows data structure control items like tree structures to be
embedded in larger data structures without the penalty of extra
pointers and allocations.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Implement library functions for "left-leaning red-black trees" with
uint64_t keys. This is meant for looking up symbols by address in the
backends that need to do so, e.g. ELF.
A good question is if there is a better way to do this, that recovers
the original symbol, but that's a future issue.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Explicitly document that %[...] and macro parameters concatenate the
same way, and cross-reference the two.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Remove duplicate entry for the "error" warning class; leave at the end
with "all", as being another meta-warning class.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Retroactively document the following changes to the warning options:
- gcc-like syntax (-Wfoo, -Wno-foo)
- "all" alias
- "error" metawarning
Added in 2.00rc1 but never documented.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Remove duplicate entry for the "error" warning class; leave at the end
with "all", as being another meta-warning class.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Retroactively document the following changes to the warning options:
- gcc-like syntax (-Wfoo, -Wno-foo)
- "all" alias
- "error" metawarning
Added in 2.00rc1 but never documented.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Add a common file, outlib.c, for output formats. Add the function
realsize() instead of open-coded variants in almost every backend.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
These two really need to be done together, in order for constructs
such as %[%1] to work properly. Furthermore, fix a token-pasting bug
in expand_mmac_params().
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Better grammar and fix incorrect description of the number-overflow
warning (it is not just limited to 64-bit arithmetic overflow, it also
triggers when trying to squeeze in a value which is too large into an
immediate.)
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
The code to parse the -w/-W options was updating warning_on[], not
warning_on_global[], but warning_on[] is reset at the beginning of
each pass (to let the warning directive work); as a result the -w/-W
options don't actually do anything at all.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Set STT_TLS in symbol table for symbols declared
in thread local storage sections. Note that,
for now at least, such symbols must also be
declared as GLOBAL.
Remove unnecessary duplicated patterns; with indirection we can handle
lists of any length.
For 16-bit generic padding, alternate between SI and DI dependencies.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Use expand_id() for the argument to %use, instead of expand_smacro().
This really makes more sense for a "naked" argument. This is a
semantic change, but is unlikely to break any real code.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>