1780 |
when it should have called the lower case version, since it was |
when it should have called the lower case version, since it was |
1781 |
explicitly computing a base pointer. |
explicitly computing a base pointer. |
1782 |
|
|
1783 |
|
Since 6.2alpha4: |
1784 |
|
- GC_invoke_finalizers could, under rare conditions, set |
1785 |
|
GC_finalizer_mem_freed to an essentially random value. This could |
1786 |
|
possibly cause unbounded heap growth for long-running applications |
1787 |
|
under some conditions. (The bug was introduced in 6.1alpha5, and |
1788 |
|
is not in gcc3.3. Thanks to Ben Hutchings for finding it.) |
1789 |
|
- Attempted to sanitize the various DLL macros. GC_USE_DLL disappeared. |
1790 |
|
GC_DLL is used instead. All internal tests are now on GC_DLL. |
1791 |
|
README.macros is now more precise about the intended meaning. |
1792 |
|
- Include DllMain in the multithreaded win32 version only if the |
1793 |
|
collector is actually built as a dll. (Thanks to Mohan Embar for |
1794 |
|
a version of the patch.) |
1795 |
|
- Hide the cygwin threadAttach/Detach functions. They were violating our |
1796 |
|
namespace rules. |
1797 |
|
- Fixed an assertion in GC_check_heap_proc. Added GC_STATIC_ASSERT. |
1798 |
|
(Thanks again to Ben Hutchings.) |
1799 |
|
- Removed some obsolete definitions for Linux/PowerPC in gcconfig.h. |
1800 |
|
- CORD_cat was not rebalancing unbalanced trees in some cases, violating |
1801 |
|
a CORD invariant. Also tweaked the rebalancing rule for |
1802 |
|
CORD_cat_char_star. (Thanks to Alexandr Petrosian for the bug report |
1803 |
|
and patch.) |
1804 |
|
- Added hand-coded structured exception handling support to mark.c. |
1805 |
|
This should enable support of dynamic libraries under win32 with |
1806 |
|
gcc-compiled code. (Thanks to Ranjit Mathew for the patch.) |
1807 |
|
Turned on dynamic library scanning for win32/gcc. |
1808 |
|
- Removed some remnants of read wrapping. (Thanks to Kenneth Schalk.) |
1809 |
|
GC_USE_LD_WRAP ws probably broken in recent versions. |
1810 |
|
- The build could fail on some platforms since gcconfig.h could include |
1811 |
|
declarations mentioning ptr_t, which was not defined, e.g. when if_mach |
1812 |
|
was built. (Thanks to Yann Dirson for pointing this out.) Also |
1813 |
|
cleaned up tests for GC_PRIVATE_H in gcconfig.h a bit. |
1814 |
|
- The GC_LOOP_ON_ABORT environment variable interfered with incremental |
1815 |
|
collection, since the write fault handler was erroneously overridden. |
1816 |
|
Handlers are now set up in the correct order. |
1817 |
|
- It used to be possible to call GC_mark_thread_local_free_lists() while |
1818 |
|
the world was not stopped during an incremental GC. This was not safe. |
1819 |
|
Fortunately, it was also unnecessary. Added GC_world_stopped flag |
1820 |
|
to avoid it. (This caused occasional crashes in GC_set_fl_marks |
1821 |
|
with thread local allocation and incremental GC. This probably happened |
1822 |
|
primarily on old, slow multiprocessors.) |
1823 |
|
- Allowed overriding of MAX_THREADS in win32_threads.c from the build |
1824 |
|
command line. (Patch from Yannis Bres.) |
1825 |
|
- Taught the IA64/linux code to determine the register backing store base from |
1826 |
|
/proc/self/maps after checking the __libc symbol, but before guessing. |
1827 |
|
(__libc symbols are on the endangered list, and the guess is likely to not |
1828 |
|
always be right for 2.6 kernels.) Restructured the code to read and parse |
1829 |
|
/proc/self/maps so it only exists in one place (all platforms). |
1830 |
|
- The -DUSE_PROC_FOR_LIBRARIES code was broken on Linux. It claimed that it |
1831 |
|
also registered the main data segment, but didn't actually do so. (I don't |
1832 |
|
think anyone actually uses this configuration, but ...) |
1833 |
|
- Made another attempt to get --enablecplusplus to do the right thing. |
1834 |
|
Since there are unavoidable problems with C programs linking against a |
1835 |
|
dynamic library that includes C++ code, I separated out the c++ code into |
1836 |
|
libgccpp. |
1837 |
|
|
1838 |
|
Since 6.2alpha5: |
1839 |
|
- There was extra underscore in the name of GC_save_registers_in_stack |
1840 |
|
for NetBSD/SPARC. (Thanks to Jaap Boender for the patch.) |
1841 |
|
- Integrated Brian Alliet's patch for Darwin. This restructured the |
1842 |
|
linuxthreads/pthreads support to separate generic pthreads support |
1843 |
|
from more the system-dependent thread-stopping code. I believe this |
1844 |
|
should make it easier to eliminate the code duplication between |
1845 |
|
pthreads platforms in the future. The patch included some other |
1846 |
|
code cleanups. |
1847 |
|
- Integrated Dan Bonachea's patch to support AIX threads. This required |
1848 |
|
substantial manual integration, mostly due to conflicts with other |
1849 |
|
recent threads changes. It may take another iteration to |
1850 |
|
get it to work. |
1851 |
|
- Removed HPUX/PA-RISC support from aix_irix_threads.c. It wasn't used |
1852 |
|
anyway and it cluttered up the code. And anything we can do to migrate |
1853 |
|
towards generic pthreads support is a good thing. |
1854 |
|
- Added a more explicit test for tracing of function arguments to test.c. |
1855 |
|
(Thanks to Dan Grayson.) |
1856 |
|
- Added Akira Tagoh's PowerPC64 patch. |
1857 |
|
- Fixed some bit rot in the Cygwin port. (Thanks to Dan Bonachea for |
1858 |
|
pointing it out.) Gc.h now includes just windows.h, not winbase.h. |
1859 |
|
- Declared GC_save_regs_in_stack() in gc_priv.h. Remove other declarations. |
1860 |
|
- Changed --enable-cplusplus to use automake consitionals. The old way |
1861 |
|
confused libtool. "Make install" didn't work correctly for the old version. |
1862 |
|
Previously --enable-cplusplus was broken on cygwin. |
1863 |
|
- Changed the C version of GC_push_regs to fail at compile time if it is |
1864 |
|
generated with an empty body. This seems to have been the cause of one |
1865 |
|
or two subtle failures on unusual platforms. Those failures should |
1866 |
|
now occur at build time and be easily fixable. |
1867 |
|
|
1868 |
|
|
1869 |
To do: |
To do: |
|
- MacOSX thread support still appears to be a bit unreliable. |
|
1870 |
- A dynamic libgc.so references dlopen unconditionally, but doesn't link |
- A dynamic libgc.so references dlopen unconditionally, but doesn't link |
1871 |
against libdl. |
against libdl. |
1872 |
- GC_proc_fd for Solaris is not correctly updated in response to a |
- GC_proc_fd for Solaris is not correctly updated in response to a |