Rationale: this is useful for projects developed entirely in high-level
language and which use NASM as a backend (compilers able to generate NASM
code are e.g. ncc or Free Pascal). With this option there is no need to have
a single assembly language file for each project with just one "module NNN"
directive — it is enough now to specify the name as an argument to ldrdf.
Signed-off-by: Yuri Zaporozhets <r_tty@yahoo.co.uk>
Rationale: this is required for, e.g., FreePascal, which tends to generate
very long labels for procedures/methods that do not fit into 64 bytes.
This change does not introduce any incompatibilities.
Signed-off-by: Yuri Zaporozhets <r_tty@yahoo.co.uk>
*To the best of my knowledge*, we now have authorization from everyone
who has significantly contributed to NASM in the past. As such,
change the license to the 2-clause BSD license.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Consider that argv[0] may contain extensions like .exe as well as
pathname prefixes. Handle it by searching backwards for the string
"rdf2" and then extract the alphanumeric tail that follows.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
The more common acronym for Intel Hex seems to be "ith", but the
legacy utility was "rdf2ihx", so we allow both variants. However, the
Makefile rule was wrong.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Make the base addresses in rdfload unsigned. Note: this file is
really obsolete; it can't represent RDF2 with more than the 3
old-style segments.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Remove rdf2ihx.c since I think it's unlikely we'll ever get it
relicensed -- any attempts at contacting the author has failed, and
it's easier to reconstruct it from scratch.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
To the best of my knowledge, the only file which we don't have 2-BSD
relicensing permission for at this stage is rdf2ihx.c. That file
probably should just be rewritten, if anyone cares.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
We have a number of all-zero buffers in the code. Put a single
all-zero buffer in nasmlib.c. Additionally, add fwritezero()
which can be used to write an arbitrary number of all-zero bytes;
this prevents the situation where the all-zero buffer is simply
too small.
I received some warnings when running make on the head revision of
nasm from git:
----
rdf2bin.c: In function 'main':
rdf2bin.c:122: warning: comparison between signed and unsigned
rdf2bin.c:123: warning: comparison between signed and unsigned
rdf2bin.c:124: warning: comparison between signed and unsigned
----
I think these warnings are innocuous and should be safely avoidable
with simple casts (please see attached patch).
* rdoff/rdf2bin.c
(main): cast to size_t for comparison with fwrite return value
Signed-off-by: Bo Borgerson <gigabo@gmail.com>
Clean up remaining build warnings. None of this should affect code
operations. The only warnings which were actually relevant might have
been the ones in ldrdf.c, but it's not clear if anyone ever uses that.
Fix warning in rdfload.c about cast to pointer of different size when
compiling on 64 bits. Of course, rdfload is probably useless on 64
bits, but it's pretty useless in the first place.
Both C and C++ have "bool", "true" and "false" in lower case; C
requires <stdbool.h> for this, in C++ it is an inherent type built
into the compiler. Use those instead of the old macros; emulate with
a simple typedef enum if unavailable.
Concentrate compiler dependencies to compiler.h; make sure compiler.h
is included first in every .c file (since some prototypes may depend
on the presence of feature request macros.)
Actually use the conditional inclusion of various functions (totally
broken in previous releases.)
Apparently configure was generating config.h, and nothing ever actually
included it. Include it in nasm.h as well as compiler.h, and in
rdoff/rdlar.h which uses these macros.
There appears to be no use of HAVE_* macros in any file that doesn't
have nasm.h included; in fact, so far the only use has been in
rdoff/rdlar.h.