Re: PATCH: boehm-gc breakage between binutils 2.16.1 and 2.17 on FreeBSD [7.2]

Andrew Haley <[email protected]>
Newsgroups gmane.comp.gcc.patches,gmane.comp.gcc.java.devel
Message-ID <[email protected]>
Loren James Rittle wrote:
> (CCing java mailing list since main/only user of boehm-gc as in gcc tree.)
> 
> I have submitted this patch (with minor modifications to adapt to
> changes in their line of development which are not present in gcc's
> copy of gc-6.6) against gc-7.2alpha2 (i.e. the upstream) where it has
> been accepted for inclusion in their next release.  In a nutshell:
> 
> Problem: Static root registration fails on FreeBSD7+ when compiled
> with a gcc using binutils 2.17+ for a reason described in a FIXME
> comment in one version of GC_FirstDLOpenedLinkMap() in dyn_load.c.
> (And, unfortunately, the version of FirstDLOpenedLinkMap() used by all
> versions of FreeBSD without regard to their ability to use a better
> implementation. ;-)
> 
> Solution: Enable the use of dl_iterate_phdr on those versions of
> FreeBSD that have it.  This patch was tested against the current gcc
> mainline@151279 bootstrapped to use GNU binutils 2.19.1 on FreeBSD 7.2
> and as bootstrapped to use the system linker (~2.15).
> 
> First of all, I have seperated the macro check to decide whether we
> HAVE_DL_ITERATE_PHDR from the code enabled.  This simplifies adding
> checks for those systems (FYI, other non-linux, ELF systems besides
> FreeBSD would likely benefit from a similar change) that don't have
> the same complex glibc version dependencies.  Next, I add a check for
> the major version at which the FreeBSD system supports dl_iterate_phdr.
> 
> OK, to commit to gcc mainline?
> 
> Regards,
> Loren
> 
> 2009-08-31  Loren J. Rittle  <[email protected]>
> 
> 	* dyn_load.c (HAVE_DL_ITERATE_PHDR): Break definition from use.
> 	Define for FreeBSD 7.0+.
> 

This is fine.  It's definitely best to use dl_iterate_phdr where it works.
I presume that you've checked moving the definition of HAVE_DL_ITERATE_PHDR
doesn't break other systems.

Andrew.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.