01.Jan.2025
Frank Wille (ANF)
|
Entwicklerwerkzeuge: vasm 2.0a und vlink 0.18
Frank Wille hat vasm, einen portablen Assembler für zahlreiche CPUs mit verschiedenen Syntax- und Output-Modulen, sowie vlink, einen portablen Linker für zahlreiche Object-, Executable- und Binär-Formate, aktualisiert.
Die Änderungen bei vasm V2.0a:
- Fixed bad path in source level debugging information, when the initial source file and an include file were based on the same "compile directory".
- Get rid of C99-round() dependency.
- Fixed empty strings, which were broken in V2.0. They should not generate any data.
- When position-independant code is requested (-pic option) the assembler defaults to relocatable mode (to be able to detect violations).
- Allow 64-bit (or more) expressions with absolute label addresses.
- 6502: Additionally allow BRK with an immediate 8-bit operand.
- 6502: Operand prefix character '?' can be used to select the Memory/Bank-ID where the referenced symbol resides. Requires the use of VOBJ and vlink.
- mot-syntax: A double colon after the label also exports RS symbols now.
- madmac-syntax: New directives: ifdef and ifndef (just for convenience, they are no official MadMac directives!).
- madmac-syntax: Fix problem with print-directive when string is empty.
- oldstyle-syntax: Fixed usage of '$' as current-PC symbol for Z80, which was broken since V2.0.
- oldstyle-syntax: Fixed definition of structure offset labels, which should be referenceable by structname.offsetname. Broken since V2.0.
- hunk-output: Fixed output generated by Databss directives (like DX in mot-syntax). Broken in V2.0.
- hunk-output: -linedebug: do not generate multiple entries per line.
Die Änderungen bei vlink 0.18:
- Define for each relocation type whether it is signed, unsigned or unknown, to provide better range checks.
- Make the range-checking work with sign-extended addresses (Example: m68k 16-bit absolute addressing).
- When an output section's memory region has not enough space the linker will look for the next matching output section.
- Linker script function KEEP() now really prevents garbage collection of sections.
- Sorting and exclusion functions for linker script section patterns: SORT_BY_ALIGNMENT(), SORT_BY_NAME(), SORT_BY_SIZE(), REVERSE(), EXCLUDE_FILE(), EXCLUDE_SECTION(). Supporting up to two sorting levels.
- The output section's bank size can be defined by (BANKSIZE=n) in the script, so input sections may not cross bank borders. In that case they will be aligned to the beginning of the next bank.
- Linker script MEMORY definitions now support an optional ID=n argument, where n defines an identification value which can be referenced by a VOBJ-specific relocation type (MEMID).
- Can find first executable code-section now, when no start symbol is present.
- Portable pattern matching routine, used for Windows and TOS, did case-insensitive string comparisons in the past.
- Absolute symbols are printed as a separate section into the map file.
- Support LINKONCE section flag.
- New options -symfile, -symfmt and -symctrl to output symbol/value pairs into a file using the given printf-format string.
- New options -obe and -ole to specify the endianess of octets within a target-byte (when it has more than 8 bits) when writing the contents of a section to a file system.
- New option -lineoffsets to output a separate file with source line offsets per section.
- New option -mattr to merge all sections with same attributes, when linking without a linker script.
- The target file formats rawbin1 and rawbin2 were replaced by a common rawbin format. rawbin2 is now -brawbin with -multifile option. The old target names are still supported for backwards compatibility.
- New target file formats "foenixpgx-c02", "foenixpgx-816", "foenixpgz-24" and "foenixpgz-32" for Foenix retro computers.
- New target file format "appleomf" can generate relocatable load-files for Apple IIgs computers.
- Merge options -mrel, -mtype and -mall also work with -r now, when creating a new relocatable object file.
- Linker script commands BYTE, SHORT, LONG, QUAD, SQUAD do now create 1, 2, 4 or 8 target-bytes and no longer 8, 16, 32, 64-bit values.
- Relocatable/Abs symbols with the same name have precedence before Common symbols and do not cause a multiple-definition error.
- Starting vlink without arguments only shows a short list of options now. For a detailed description use -h, which also includes target-specific options selected by -b.
- Fixed output section trimming in the linker script.
- Fix error message for unknown target file formats (-b).
- (ados/ehf) New option -kick1 makes sure the generated executable is comaptible with the Kickstart 1.x loader.
- (ados/ehf) Allow symbol redefinitions from pulled library units, as long as their target CPU differs (M68k/PPC WarpOS mixed binaries). This only worked for symbols from code sections, since V0.17.
- (elf) Fixed uninitialized .plt at end of text segment.
- (tos) Can use DRI object files and libraries as input now. HiSoft and SozobonX symbol name extensions are supported.
- (tos) TOS executable files do work as input and DRI objects as output (-r).
- (tos) Enable SozobonX symbol names with -tos-sozobonx.
- (tos) Disable the HiSoft symbol name extension in executables with -tos-stddri.
- (rawbin) Fixed missing byte in the ORIC tape header and automatically remove a ".tap" extension from the name stored there.
- (rawbin) IHEX supports architectures with more than 8 bits per byte. But note that the address is still incremented in 8-bit steps.
- (rawbin) Make sure the file size is even, when using a QDOS header.
- (rawbin) Fixed raw reloc table output (-q) for a relocation at offset 0.
- (rawbin) New options -fill, -coalesced and -multifile (previously rawbin2).
- (vobj) Supports -r option to output a relocatable VOBJ file. Option -vobj2 may be used to write that file in VOBJ v2 format.
- (vobj) -vobjcpu option selects the name of the target CPU.
- (vobj) Supports VOBJ v2 format (vasm -Fvobj -vobj2) and PPC non-standard relocations (EABI, MorphOS, AmigaOS).
- (xfile) Entry address is written to the header.
- (xfile) New option -x-high sets the high-address flag in the header.
(snx)
[Meldung: 01. Jan. 2025, 15:12] [Kommentare: 0]
[Per E-Mail versenden] [Druck-Version] [ASCII-Version]
|