TIGCC 0.96 Beta 5 Release Notes:
Changes (since Beta 4):
* GCC upgraded to GCC 4.0-20050630 (4.0.1 prerelease, fixing several bugs in GCC 4.0.0).
* GCC: Fixed use of an incorrect file number in DWARF 2 .file directives, causing assembler errors for some files with debugging information.
* GCC: Disabled output of the .eh_frame unwinding information section, which is redundant with the .debug_frame information and has a format incompatible with linker optimization.
* GCC: Bugfix: .comm and .lcomm now always output their data to the correct section.
* GCC: Fixed .comm variables not getting their own section under -fdata-sections -mno-bss.
* GCC: Fixed GCC segfault (missing NULL check) for "static" (file-scope) globals under -fdata-sections -mno-bss.
* GCC: Fixed predefinition of __TIGCC_ENV__, __TIGCC_WIN_ENV__ and __INT_SHORT__.
* GNU as upgraded to Binutils 2.16.1.
* GNU as: Disabled broken range-checking of PC-relative relocs (ranges are checked properly in the linker).
* GNU as: Now emits proper debugging information for F-Line and A-Line instructions.
* ld-tigcc: Fixed .dbg file output with BSS sections.
* ld-tigcc: Fixed memory leak during section reordering.
* ld-tigcc: Doesn't crash on symbols at negative (invalid) locations during constant merging.
* ld-tigcc: Fixed handling of empty sections (containing only symbols) referenced by relocs (the COFF import no longer tries to hide them from the linker core, and they will never be put into BSS storage).
* ld-tigcc: Fixed debugging info for kernel-based programs and programs using custom relocations.
* ld-tigcc: Removed pointless warning about being unable to emit debugging info for ROM/RAM/lib calls.
* Added support for the new _nostub comment specification 1.01 and its new COMMENT_AUTHORS entry.
* TIGCCLIB: Grayscale routine size-optimized by Lionel Debroux.
* TIGCCLIB: Removed legacy (GCC 3) definitions of DEFINE_INT_HANDLER and ER_throw.
* TIGCCLIB: Added "const" for the sprite data in the sprite function prototypes.
* *nix install wizards: Using type (bash builtin) instead of which (broken on OS X)
* *nix source install wizard: Using $CC -v rather than $CC --version to check for Apple GCC because the --version output doesn't always contain "Apple" for some reason.
* The Linux/x86 binaries are now built on Fedora Core 4.
Important notes:
* The "Generate debugging information" option in the IDE and the "-g" switch in the command-line compiler work differently starting from TIGCC 0.96 Beta 4. They no longer produce human-readable annotated .s files for debugging programs by hand using an assembly-level debugger. Instead, they produce .dbg files containing debugging information in the binary DWARF 2 format, which can be used with GDB. A TiEmu snapshot with GDB support enabled is scheduled to be released shortly after TIGCC 0.96 Beta 4.
Still to do (planned for TIGCC 0.96):
* merge Lionel's (remaining) documentation and library updates into TIGCCLIB
* merge my 3-plane grayscales into TIGCCLIB (assigned to me, of course)
* support for 89u/9xu/v2u files (not just tib) in the linker
* implement GNU as .[su]leb128 and .cfi* directives (in a way compatible with linker optimization), in order to facilitate writing debugging information for ASM files.
* add DWARF 2 function prototype and unwinding information to tigcc.a
Still to do (not scheduled yet, may be ready for 0.96 or not):
* LZMA compression support
* work on having GNU as accept A68k code, so we can drop A68k and maintain only one assembler. (Some things are already handled by -mri-compat, some more things are easy to handle, others are harder.)
Still to do (not scheduled yet, will most likely not be ready in a 0.96 timeframe):
* support for multi-section programs in the linker as suggested by JimRandomH
* continue the work on the Linux/Unix IDE (ktigcc)
