On Sun, 29 Aug 2004 13:43:09 -0400, MenTaLguY wrote:
I'm going to make one small adjustment to the GC code now: adding GC_no_dls = 1 to the GC intialization code.
This will prevent libgc from scanning the static data areas of dynamic libraries, which seems to cause problems on FC2, and in any case is unnecessary.
I've located the problem. It was a combination of bugs in boehm GC (which I've reported) and apbuild. We were forcing dl_iterate_phdrs to be "undefined" but as this is a weak symbol this did not cause a link failure as it was meant to, but rather subtly forced libgc onto a much less used codepath which apparently makes some bad assumptions about ELF headers.
I've fixed apbuild for this specific case, though the real fix is for apbuild to ignore weak symbols as all uses of them should be checked anyway. Not doing so is almost certainly a bug in the application.
I'm respinning the nightly build now to confirm the fix works. There's no need for alarm, standard builds for Fedora should work fine. This is just a teething problem with autopackage.
In any case, dl_iterate_phdr has been around for a while, at least since Red Hat 7.2 and I doubt we care anymore about systems older than that. We should probably bump the minimum glibc version autopackage binaries require to something more modern, maybe Red Hat 8 generation systems.
Problem is that it's difficult to get a feel for how many people are using what generation of Linux systems. I know developers tend to overestimate it: there are still new installs of Red Hat 9 and even 8 being carried out but maybe glibc 2.3.x is a reasonable baseline to target from now on.
thanks -mike