Releases: tkchia/gcc-ia16
Releases · tkchia/gcc-ia16
20210302
Note: Please see https://github.com/tkchia/build-ia16/releases and https://launchpad.net/%7Etkchia/+archive/ubuntu/build-ia16/ for the most recent pre-compiled packages and release notes.
gcc-ia16-20180807-gcc-testsuite-tested: 7 Aug 2018 "stable" gcc-ia16 commit (tkchia)
This commit of gcc-ia16 has undergone GCC's C language regression tests, and can thus be considered "stable". This release includes the following changes relative to the previous "stable" release (14 Jul 2018): * Added a new `regparmcall' calling convention, available for now through __attribute__ ((regparmcall)). * Bug fix: %ds might not be reset properly to %ss before function return, when shrink-wrapping optimization was in effect. * Minor bug fixes: - A function _definition_ `void __far f (void) { ... }' no longer gives a spurious "function definition has qualified void return type" warning. - __attribute__ ((near_section)) and __attribute__ ((far_section)) are now ignored on near functions, for the purposes of comparing type attributes. * Corrected some mistakes in the regression test suite. Several minor regressions are as in the previous release: * Size regressions: - gcc.c-torture/execute/pr58574.c with -O0 - gcc.dg/torture/fp-int-convert-double.c with -O0 - gcc.dg/torture/fp-int-convert-long-double.c with -O0 - c-c++-common/torture/complex-sign-mul.c with -Os. - c-c++-common/torture/vector-compare-1.c with -O1. * attribute-incompat-1.c and attribute-abi-ds-3.c in gcc.target/ia16/torture/ currently fail to give expected warnings, when compiled with -flto. * gcc.target/ia16/torture/cmodel-small-only/far-addr-fp-{1, 2}.c fail under -flto, as __builtin_ia16_FP_OFF (.) cannot currently be folded when LTO is in effect.
gcc-ia16-20180714-gcc-testsuite-tested: 14 Jul 2018 "stable" gcc-ia16 commit (tkchia)
This commit of gcc-ia16 has undergone GCC's C language regression tests, and can thus be considered "stable". This release includes the following changes relative to the previous "stable" release (8 Jul 2018): * -mfar-function-if-far-return-type is now enabled on default. This means that `int __far f (void);' is now considered a far function declaration. * Bug fix: `void __far f (void);' no longer gives a spurious "function with qualified void return type called" warning. * __builtin_ia16_FP_OFF (fp) can now be constant-folded, even if *fp occurs in the same translation unit. * However, __builtin_ia16_FP_OFF (.) is no longer folded when LTO is in effect. The current implementation of this built-in uses a trick where the same symbol is "interpreted" as having two different types, and the LTO engine hates that. There are two minor new regressions: * gcc.target/ia16/torture/cmodel-small-only/far-addr-fp-{1, 2}.c fail under -flto, due to the above. Several minor regressions are as in the previous release: * Size regressions: - gcc.c-torture/execute/pr58574.c with -O0 - gcc.dg/torture/fp-int-convert-double.c with -O0 - gcc.dg/torture/fp-int-convert-long-double.c with -O0 - c-c++-common/torture/complex-sign-mul.c with -Os. - c-c++-common/torture/vector-compare-1.c with -O1. * attribute-incompat-1.c and attribute-abi-ds-3.c in gcc.target/ia16/torture/attribute currently fail to give expected warnings, when compiled with -flto.
gcc-ia16-20180708-gcc-testsuite-tested: 8 Jul 2018 "stable" gcc-ia16 commit (tkchia)
This commit of gcc-ia16 has undergone GCC's C language regression tests, and can thus be considered "stable". This release includes the following changes relative to the previous "stable" release (29 Jun 2018): * Added a new function __builtin_ia16_FP_OFF (.) which extracts the offset portion of a far pointer. This function is useful in that it can be invoked from within static initializers in some cases. * Calls to __builtin_ia16_selector (.) can now also be constant-folded in some cases. * Fixed a bug in which casting a far pointer to a near pointer crashed GCC. Several minor regressions are as in the previous release: * Size regressions: - gcc.c-torture/execute/pr58574.c with -O0 - gcc.dg/torture/fp-int-convert-double.c with -O0 - gcc.dg/torture/fp-int-convert-long-double.c with -O0 - c-c++-common/torture/complex-sign-mul.c with -Os. - c-c++-common/torture/vector-compare-1.c with -O1. * attribute-incompat-1.c and attribute-abi-ds-3.c in gcc.target/ia16/torture/attribute currently fail to give expected warnings, when compiled with -Os + -flto.
gcc-ia16-20180629-gcc-testsuite-tested: 29 Jun 2018 "stable" gcc-ia16 commit (tkchia)
This commit of gcc-ia16 has undergone GCC's C language regression tests, and can thus be considered "stable". This release includes the following changes relative to the previous "stable" release (14 Jun 2018): * Added __attribute__ ((far_section)). * Fixed the logic for checking if two function types are compatible (given their qualifiers and attributes). * Made libstdc++'s c++locale.cc use strtold (...). * Reorganized the IA-16 test cases somewhat. * Preparing some groundwork for implementing the medium memory model (one data segment, multiple text segments). This release adds a new test program gcc.target/ia16/torture/ attribute-incompat-1.c, and also enables the with-LTO tests for the test program gcc.target/ia16/torture/attribute-abi- ds-3.c. This resulted in some "regressions" where warnings were expected but not seen when compiling with -Os -flto. I hope to find a way to fix this problem. Several minor regressions are as in the previous release: * Size regressions: - gcc.c-torture/execute/pr58574.c with -O0 - gcc.dg/torture/fp-int-convert-double.c with -O0 - gcc.dg/torture/fp-int-convert-long-double.c with -O0 - c-c++-common/torture/complex-sign-mul.c with -Os. - c-c++-common/torture/vector-compare-1.c with -O1.
gcc-ia16-20180614-gcc-testsuite-tested: 14 Jun 2018 "stable" gcc-ia16 commit (tkchia)
This commit of gcc-ia16 has undergone GCC's C language regression tests, and can thus be considered "stable". This release includes the following changes relative to the previous "stable" release (3 Jun 2018): * Added experimental (and incomplete) support for the Embeddable Linux Kernel Subset (ELKS) OS. * Unified the -mcmodel=small and -mseparate-code-segment options. * Added a new -mno-segment-relocation-stuff option. Several minor regressions are as in the previous release: * Size regressions: - gcc.c-torture/execute/pr58574.c with -O0 - gcc.dg/torture/fp-int-convert-double.c with -O0 - gcc.dg/torture/fp-int-convert-long-double.c with -O0 - c-c++-common/torture/complex-sign-mul.c with -Os. - c-c++-common/torture/vector-compare-1.c with -O1.
gcc-ia16-20180603-gcc-testsuite-tested: 3 Jun 2018 "stable" gcc-ia16 commit (tkchia)
This commit of gcc-ia16 has undergone GCC's C language regression tests, and can thus be considered "stable". This release includes the following changes relative to the previous "stable" release (28 Apr 2018): * Modified the c-c++-common/torture/vector-compare-1.c test case to use the small memory model (-mcmodel=small) when targeting ia16-*-*. This program now compiles to larger binaries, because newlib's _fstat (...) now does more things and also indirectly links in _tzset_r (.). There is one (relatively minor) new regression: * c-c++-common/torture/vector-compare-1.c with -O1 now has a text segment which is too large to fit into 64 KiB. Several minor regressions are as in the previous release: * Size regressions: - gcc.c-torture/execute/pr58574.c with -O0 - gcc.dg/torture/fp-int-convert-double.c with -O0 - gcc.dg/torture/fp-int-convert-long-double.c with -O0 - c-c++-common/torture/complex-sign-mul.c with -Os.
gcc-ia16-20180428-gcc-testsuite-tested: 28 Apr 2018 "stable" gcc-ia16 commit (tkchia)
This commit of gcc-ia16 has undergone GCC's C language regression tests, and can thus be considered "stable". This release includes the following changes relative to the previous "stable" release (19 Apr 2018): * Backported Jakub Jelinek's --with-gcc-major-version-only patch from GCC 7+. This is to help with porting gcc-ia16 to DJGPP/MS-DOS sans long file name support. * Added a test case to test that MZ relocations work right. Several minor regressions are as in the previous release: * Size regressions: - gcc.c-torture/execute/pr58574.c with -O0 - gcc.dg/torture/fp-int-convert-double.c with -O0 - gcc.dg/torture/fp-int-convert-long-double.c with -O0 - c-c++-common/torture/complex-sign-mul.c with -Os.
gcc-ia16-20180419-gcc-testsuite-tested: 19 Apr 2018 "stable" gcc-ia16 commit (tkchia)
This commit of gcc-ia16 has undergone GCC's C language regression tests, and can thus be considered "stable". This release includes the following changes relative to the previous "stable" release (13 Apr 2018): * Changed the way far function calls are handled --- calls to far functions defined outside a module now use `lcall', rather than `pushw %cs; call'. This is similar to how Open Watcom C/C++ works. * Added `assume_ds_data', `no_assume_ds_data', and `near_section' function attributes. Several minor regressions are as in the previous release: * Size regressions: - gcc.c-torture/execute/pr58574.c with -O0 - gcc.dg/torture/fp-int-convert-double.c with -O0 - gcc.dg/torture/fp-int-convert-long-double.c with -O0 - c-c++-common/torture/complex-sign-mul.c with -Os.
gcc-ia16-20180413-gcc-testsuite-tested: 13 Apr 2018 "stable" gcc-ia16 commit (tkchia)
This commit of gcc-ia16 has undergone GCC's C language regression tests, and can thus be considered "stable". This release includes the following changes relative to the previous "stable" release (7 Apr 2018): * Added experimental support for generation of code which can work in 80286 protected mode (-mprotected-mode). * Removed `wide-types' and `*/frame-pointer' multilibs. * Improved reporting of "tiny code model does not support `__far' static storage variables" error condition. * Refactored expansion of (call...) insn templates. The test case gcc.dg/tree-ssa/gen-vect-11.c has now been disabled for ia16-*-*, since it does not really apply. Several minor regressions are as in the previous release: * Size regressions: - gcc.c-torture/execute/pr58574.c with -O0 - gcc.dg/torture/fp-int-convert-double.c with -O0 - gcc.dg/torture/fp-int-convert-long-double.c with -O0 - c-c++-common/torture/complex-sign-mul.c with -Os.