]> Shamusworld >> Repos - rln/log
rln
20 months agoFix for bug #191, thanks to jagmod for the report. master v1.7.4
Shamus Hammons [Tue, 16 Aug 2022 17:30:52 +0000 (12:30 -0500)]
Fix for bug #191, thanks to jagmod for the report.

20 months agoVersion bump for latest commits. v1.7.3
Shamus Hammons [Tue, 16 Aug 2022 02:32:36 +0000 (21:32 -0500)]
Version bump for latest commits.

20 months agoEnable debug symbol propagation
James Jones [Wed, 13 Jul 2022 22:22:46 +0000 (15:22 -0700)]
Enable debug symbol propagation

The existing code was sufficient to pass through
and relocate most debug symbols as necessary. It
was just disabled for some reason. The only bugs
were in the handling of non-text line numbers,
which aren't ever used as far as I can tell, and
include files, which should be relocated like
line numbers to match ALN's behavior.

20 months agoConvert output symbol table back to a table
James Jones [Tue, 26 Jul 2022 10:36:50 +0000 (03:36 -0700)]
Convert output symbol table back to a table

It looks like at some point the output symbol
was converted from an actual table of SYMREC
structs to an in-memory copy of a COFF/a.out
symbol table. This entailed relying on the
assumption that all symbols had an entry in the
string table when using OSTLookup()'s return
value as anything other than a boolean value,
as is done in the relocation procesing logic.

In preparation for adding support for debug
symbols, which often have no string table entry,
revert to using an intermediate output symbol
table representation and serializing it one symbol
at a time when writing the output file. This
simplifies various code paths, but potentially
slows down writing COFF symbol tables to disk.
Fortunately, this table is not written with
default options, and is rather small unless
using debug symbols, so this shouldn't
significantly affect the runtime of most
existing use cases.

20 months agoVersion bump for last commit. v1.7.2
Shamus Hammons [Tue, 16 Aug 2022 02:28:33 +0000 (21:28 -0500)]
Version bump for last commit.

20 months agoAdd Alcyon C object file support
James Jones [Sat, 18 Apr 2020 09:45:06 +0000 (02:45 -0700)]
Add Alcyon C object file support

Support ingesting the DRI Alcyon C object file
format in addition to a.out object files. The load
file routine simply translates the Alcyon object
file into an a.out file before passing it on to
the existing processing workflow.

The motivation here was to enable linking of the
binary-only cinepak decompression GPU routines
provided in the developer files. ALN can handle
these files just fine, and now RLN can too.

However, that is a very simple object files To
fully exercise the relocation table translation
code, contrived assembly files with all types of
relocations were assembled as Alcyon C object
files using MADMAC and BSD/a.out object files
using RMAC (Note RMAC had to be used to generate
the a.out files because MADMAC generates invalid
a.out relocations for certain relocation types
that it handles fine in Alcyon format), and then
both object files were linked as COFF executables
using RLN. The resulting COFF files were verified
to be identical.

20 months agoVersion bump for latest patches. v1.7.1
Shamus Hammons [Tue, 16 Aug 2022 02:24:39 +0000 (21:24 -0500)]
Version bump for latest patches.

20 months agoHandle absolute BSS segment location of 'xt'
James Jones [Sun, 17 Apr 2022 04:11:21 +0000 (21:11 -0700)]
Handle absolute BSS segment location of 'xt'

When linking an absolute executable, the data
segment and BSS segment can be assigned an
absolute address, or the special value 'x' to
indicate they are contiguous with the prior
segment (text for data, data for BSS). However,
RLN (like MAC) also accepts an optional segment
specifier after the special value 'x' that allows
explicitly specifying which segment the current
one is contiguous with. For data, the only valid
value is 'xt', meaning contiguous with text.
However, when the data segment is specified to
be at an explicit address rather than contiguous
with the text segment, it is valid to specify that
the BSS segment is contiguous with data ('xd') or
with text ('xt'). RLN was accepting these
additional 't' and 'd' values, but ignoring them.

This change causes RLN to correctly place the BSS
segment after the text segment when its location
is specified as 'xt' as long as the data segment
isn't also contiguous with the text segment.

20 months agoFix for #190, thanks to jagmod for the report
ggn [Thu, 21 Jul 2022 16:57:03 +0000 (19:57 +0300)]
Fix for #190, thanks to jagmod for the report

3 years agoUpdate to the name (don't ask), and copyright dates. Now at v.1.7.0.
Shamus Hammons [Sun, 7 Mar 2021 22:50:58 +0000 (16:50 -0600)]
Update to the name (don't ask), and copyright dates.  Now at v.1.7.0.

3 years agoAdded .gitignore. This should take care of bug #161.
Shamus Hammons [Sat, 30 May 2020 14:11:20 +0000 (09:11 -0500)]
Added .gitignore.  This should take care of bug #161.

4 years agoFix for bug #132 (warnings for non-exclusive options).
Shamus Hammons [Fri, 28 Feb 2020 23:57:27 +0000 (17:57 -0600)]
Fix for bug #132 (warnings for non-exclusive options).

Thanks to LinkoVitch for the report; now at v1.6.4.

4 years agoForgot internal documentation for last commit. :-P
Shamus Hammons [Fri, 28 Feb 2020 23:15:53 +0000 (17:15 -0600)]
Forgot internal documentation for last commit.  :-P

4 years agoPatch to add -y option.
Seb/The Removers [Fri, 15 Aug 2014 08:23:49 +0000 (10:23 +0200)]
Patch to add -y option.

4 years agoFix to test to see if include paths actually exist.
Shamus Hammons [Fri, 28 Feb 2020 22:54:05 +0000 (16:54 -0600)]
Fix to test to see if include paths actually exist.

RLN will now yell at you if you give it an include path that doesn't
exist.  Thanks to ggn for the idea!  :-)

4 years agoForgot to bump the version. Now at v1.6.2.
Shamus Hammons [Fri, 28 Feb 2020 22:16:05 +0000 (16:16 -0600)]
Forgot to bump the version.  Now at v1.6.2.

4 years agoFix for bug #151 (missing LFNs for BSD style archives).
Shamus Hammons [Fri, 28 Feb 2020 22:08:24 +0000 (16:08 -0600)]
Fix for bug #151 (missing LFNs for BSD style archives).

Yes boys and girls, while we checked for and read the long filename
record for *both* GNU and BSD style archives, we only checked the for
the GNU case because we thought the GNU and BSD identifiers were the
same.  :-/

6 years agoAdded fixups for OP data addresses.
Shamus Hammons [Tue, 27 Feb 2018 02:37:05 +0000 (20:37 -0600)]
Added fixups for OP data addresses.

This is the counterpart to the RMAC Object Processor assembler. In order
for it to be useful, we need to be able to address things in the OP
sections that refer to 68xxx TEXT and DATA sections--so now that's
possible with a little tweak to the section relocator. Now at version
1.6.1 (we forgot to commit 1.6.0, sorry!).

6 years agoPatch to properly handle WORD sized symbol relocations by SainT.
Shamus Hammons [Wed, 4 Oct 2017 14:31:20 +0000 (09:31 -0500)]
Patch to properly handle WORD sized symbol relocations by SainT.

Version now at 1.5.2.

7 years agoFix for -n and -l flags. Thanks to C. Forhan for reporting.
Shamus Hammons [Tue, 14 Jun 2016 18:25:45 +0000 (13:25 -0500)]
Fix for -n and -l flags. Thanks to C. Forhan for reporting.

8 years agoMajor cleanup of codebase (removal of unnecessary cruft).
Shamus Hammons [Tue, 8 Dec 2015 04:24:50 +0000 (22:24 -0600)]
Major cleanup of codebase (removal of unnecessary cruft).

Any time you can throw away code is a good time; we've had a very good
time lately. :-) Mainly removed redundant structures that were bolted on
to the codebase, most likely by persons who didn't have the slightest
clue how the thing worked. That's gone now, and hopefully from here on
out, things will start to get *much* cleaner.

8 years agoRevbump for last commit. :-P
Shamus Hammons [Mon, 7 Dec 2015 14:27:25 +0000 (08:27 -0600)]
Revbump for last commit. :-P

8 years agoShould be final fix for bug #36. :-P
Shamus Hammons [Mon, 7 Dec 2015 01:40:21 +0000 (19:40 -0600)]
Should be final fix for bug #36. :-P

8 years agoForgot revbump for last commit. :-P
Shamus Hammons [Sat, 28 Nov 2015 20:02:45 +0000 (14:02 -0600)]
Forgot revbump for last commit. :-P

8 years agoFix for stupid bug that truncated -i symbols to 7 chars instead of 8.
Shamus Hammons [Sat, 28 Nov 2015 20:01:27 +0000 (14:01 -0600)]
Fix for stupid bug that truncated -i symbols to 7 chars instead of 8.

8 years agoVersion # bump, as the last change was more than just a patch. :-)
Shamus Hammons [Thu, 26 Nov 2015 14:23:57 +0000 (08:23 -0600)]
Version # bump, as the last change was more than just a patch. :-)

8 years agoPossible fix for bug #36.
Shamus Hammons [Thu, 26 Nov 2015 04:39:34 +0000 (22:39 -0600)]
Possible fix for bug #36.

Also, fixed a lot of misconceptions vis-a-vis the common symbol vs. the
external, and symbol table type definitions. There's still a ways to
go, but now we're on the right track.

8 years agoFix for bug #37 (Wrong values in data symbols when linking mult. files)
Shamus Hammons [Thu, 3 Sep 2015 12:48:15 +0000 (07:48 -0500)]
Fix for bug #37 (Wrong values in data symbols when linking mult. files)

Thanks to SCPCD for the patch! Also, revbump to v.1.3.6.

9 years agoChanged wording of warning to be more clear to end user.
Shamus Hammons [Tue, 3 Feb 2015 14:37:00 +0000 (08:37 -0600)]
Changed wording of warning to be more clear to end user.

9 years agoAllow linking to internal symbols _TEXT_E, _DATA_E, & _BSS_E.
Shamus Hammons [Mon, 26 Jan 2015 15:23:02 +0000 (09:23 -0600)]
Allow linking to internal symbols _TEXT_E, _DATA_E, & _BSS_E.

Also, added -u (allow unresolved symbols) flag. Probably doesn't work as
expected; it may go away in the future.

9 years agoFix for bug that scribbled randomly on symbols.
Shamus Hammons [Thu, 22 Jan 2015 17:48:48 +0000 (11:48 -0600)]
Fix for bug that scribbled randomly on symbols.

Whenever there was a symbol collision, the DealWithSymbol() function
would, under the right circumstances, write $0800 into a symbol for no
good reason. This has been fixed. Also fixed the realloc() nonsense
that was written incorrectly as well.

9 years agoFix for crash on Win32.
Shamus Hammons [Wed, 24 Dec 2014 18:42:17 +0000 (12:42 -0600)]
Fix for crash on Win32.

Need to address the underlying problem, for now this is just a quick fix.

9 years agoFix makefile to work with cross-compile script.
Shamus Hammons [Sat, 20 Dec 2014 22:59:12 +0000 (16:59 -0600)]
Fix makefile to work with cross-compile script.

9 years agoThis Time For Sure :-P
Shamus Hammons [Sat, 20 Dec 2014 17:06:52 +0000 (11:06 -0600)]
This Time For Sure :-P

The data structures in RLN are pretty piss poor in places, and likely
that way because of whoever had this code before just bodged in a bunch
of code to make it work they way they wanted it to. Trying to reverse
course on that score. :-)

9 years agoAnd now we have proper lazy linking of AR (*.a) archives.
Shamus Hammons [Fri, 19 Dec 2014 16:55:40 +0000 (10:55 -0600)]
And now we have proper lazy linking of AR (*.a) archives.

The code probably needs some more cleanup, but now it's in much better
shape than it was before.

9 years agoMore archive file hacking...
Shamus Hammons [Tue, 16 Dec 2014 14:49:23 +0000 (08:49 -0600)]
More archive file hacking...

9 years agoNext try in supporting ar (*.a) archive files.
Shamus Hammons [Tue, 16 Dec 2014 14:08:15 +0000 (08:08 -0600)]
Next try in supporting ar (*.a) archive files.

9 years agoAdded preliminary ar (*.a) archive support.
Shamus Hammons [Mon, 15 Dec 2014 17:49:54 +0000 (11:49 -0600)]
Added preliminary ar (*.a) archive support.

9 years agoPatch to accept gcc objects submitted by ggn.
Shamus Hammons [Thu, 11 Dec 2014 14:32:52 +0000 (08:32 -0600)]
Patch to accept gcc objects submitted by ggn.

9 years agoAdded cross-compilation script
Shamus Hammons [Mon, 12 May 2014 14:55:37 +0000 (09:55 -0500)]
Added cross-compilation script

10 years agoFixed bug with absolute globals not being relocated properly.
Shamus Hammons [Thu, 16 Jan 2014 04:22:28 +0000 (22:22 -0600)]
Fixed bug with absolute globals not being relocated properly.

10 years agoFixed warning that did not respect -w flag.
Shamus Hammons [Tue, 14 Jan 2014 18:06:18 +0000 (12:06 -0600)]
Fixed warning that did not respect -w flag.

10 years agoFixed bug with iscommon() macro.
Shamus Hammons [Tue, 14 Jan 2014 17:53:48 +0000 (11:53 -0600)]
Fixed bug with iscommon() macro.

11 years agoAdded optimization flags to makefile
Shamus Hammons [Thu, 14 Feb 2013 19:24:21 +0000 (13:24 -0600)]
Added optimization flags to makefile

12 years agoClean up of path_tail() function; now uses defined path delimiter.
James Hammons [Thu, 29 Dec 2011 17:13:33 +0000 (17:13 +0000)]
Clean up of path_tail() function; now uses defined path delimiter.

12 years agoFixed makefile to do automagic platform detection.
James Hammons [Thu, 29 Dec 2011 16:51:26 +0000 (16:51 +0000)]
Fixed makefile to do automagic platform detection.

12 years agoReverted changes made to utter failure in the header. :-)
James Hammons [Thu, 29 Dec 2011 16:00:52 +0000 (16:00 +0000)]
Reverted changes made to utter failure in the header. :-)

12 years agoAdded -w (show warnings) switch.
James Hammons [Thu, 29 Dec 2011 15:36:23 +0000 (15:36 +0000)]
Added -w (show warnings) switch.

12 years agoMissed a spurious debugging printf. :-P
James Hammons [Thu, 29 Dec 2011 15:22:35 +0000 (15:22 +0000)]
Missed a spurious debugging printf. :-P

12 years agoMoar cleanups, fixing basic types to use C99 standard types.
James Hammons [Thu, 29 Dec 2011 15:18:15 +0000 (15:18 +0000)]
Moar cleanups, fixing basic types to use C99 standard types.

12 years agoFixed the broken linking action for symbols who shared the same 8 initial characters...
Graeme Hinchliffe [Thu, 29 Dec 2011 15:05:04 +0000 (15:05 +0000)]
Fixed the broken linking action for symbols who shared the same 8 initial characters in their names.  Culprit was symcmp (wacky define in rln.h) which was just WRONG.  Removed the define, and replaced with good ole strcmp in lookup().

LinkoVitch

12 years agoFixes for verbosity to reloc_segment().
James Hammons [Thu, 29 Dec 2011 09:54:15 +0000 (09:54 +0000)]
Fixes for verbosity to reloc_segment().

12 years agoAdded more verbosity to reloc_segment().
James Hammons [Thu, 29 Dec 2011 09:39:32 +0000 (09:39 +0000)]
Added more verbosity to reloc_segment().

12 years agoMore cleanups. :-P
James Hammons [Wed, 28 Dec 2011 10:44:17 +0000 (10:44 +0000)]
More cleanups. :-P

12 years agoMore cleanups.
James Hammons [Wed, 28 Dec 2011 09:59:18 +0000 (09:59 +0000)]
More cleanups.

12 years agoIn "doobject" :
SCPCD [Tue, 27 Dec 2011 14:39:05 +0000 (14:39 +0000)]
In "doobject" :
-      strcpy(obj_fname[obj_index], fname);
+      strcpy(obj_fname[obj_index], path_tail(fname)); // SCPCD : get the name of the file instead of all pathname

12 years agoMinor dusting.
James Hammons [Mon, 26 Dec 2011 17:59:11 +0000 (17:59 +0000)]
Minor dusting.

12 years agoInitial commit.
James Hammons [Mon, 26 Dec 2011 17:38:55 +0000 (17:38 +0000)]
Initial commit.