Policy for removing target support

Jan Beulich jbeulich@suse.com
Wed Sep 10 15:46:09 GMT 2025


On 10.09.2025 17:34, Rainer Orth wrote:
> I'm currently working on PR ld/33374 where ld on Solaris claims support
> for emulations that are actually rejected.  While looking into this, I
> noticed quite a few inconsistencies in both bfd/config.bfd and
> ld/configure.tgt in that area, together with cleanup opportunities with
> the Solaris linker emulations.
> 
> While working on this, I noticed that many long obsolete versions of
> Solaris are still listed in both files.  However, I wonder if there's
> any use in keeping them since I'm almost certain nobody still uses, let
> alone tests them.  While I do have Solaris systems back to Solaris 8 if
> really need be, I use them only very rarely for digging into history.
> In fact, I've removed Solaris support in GCC for all versions before
> Solaris 11.4:
> 
> OS version		removed from GCC
> 			release	year
> 
> Solaris 7		4.6	2011		64-bit SPARC support
>         8		4.8	2013
> 	9		5	2015
> 	10		10	2020            64-bit x86 support
> 	< 11.4		15	2025

First - how do these version map to what we use in binutils. For example,
in bfd/config.bfd all mentions of "solaris" are "solaris2" or longer.
ld/configure.tgt has a few without the "2". (I'm simply trying to
understand which particular entries there you consider purging.)

> As you can see, many have been removed from GCC for more than a decade
> and I don't see much use in developers being able to use current
> versions of binutils with an ancient version of gcc, if the combination
> builds and works at all.
> 
> My suggestion would be to remove support for any version before Solaris 10.  
> While the code to be removed would not be large (mostly sections in
> config.bfd and configure.tgt), we'd be left with only configurations
> where the OS is 64-bit capable, so no need to handle 32-bit-only
> configs.
> 
> However, I wonder what the binutils policy for such removals is.  When I
> suggested removing IRIX 5 and 6 and Tru64 UNIX support a couple of years
> ago, that met with considerable resistance (especially for IRIX)
> although support had been removed from GCC in 4.6 (IRIX < 6.5, Tru64
> UNIX V4/V5.0) resp. 4.8 (IRIX 6.5 and Tru64 UNIX V5.1B).

Generally I think we want to be more conservative with removal than gcc is.
People may want to be able to use a somewhat older gcc with up-to-date
binutils. Especially when newer gcc has their favorite target removed.
This doesn't, however, mean we should carry everything indefinitely.

Jan


More information about the Binutils mailing list