Skip to content
Snippets Groups Projects
  • Rainer Orth's avatar
    f68e90a0
    Remove obsolete Solaris 11.3 support · f68e90a0
    Rainer Orth authored
    Support for Solaris 11.3 had already been obsoleted in GCC 13.  However,
    since the only Solaris system in the cfarm was running 11.3, I've kept
    it in tree until now when both Solaris 11.4/SPARC and x86 systems have
    been added.
    
    This patch actually removes the Solaris 11.3 support.  Apart from
    several minor simplifications, there are two more widespread changes:
    
    * In Solaris 11.4, libsocket and libnsl were folded into libc, so
      there's no longer a need to link them explictly.
    
    * Since Solaris 11.4, Solaris includes all crts needed by gcc (like
      crt1.o and gcrt1.o) with the base system.  All workarounds to provide
      fallbacks can thus go.
    
    Bootstrapped without regressions on i386-pc-solaris2.11 and
    sparc-sun-solaris2.11 (as/ld, gas/ld, and gas/gld) as well as Solaris
    11.3/x86 to ascertain that version is actually rejected.
    
    2024-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
    
    	c++tools:
    	* configure.ac (ax_lib_socket_nsl.m4): Don't sinclude.
    	(AX_LIB_SOCKET_NSL): Don't call.
    	(NETLIBS): Remove.
    	* configure: Regenerate.
    	* Makefile.in (NETLIBS): Remove.
    	(g++-mapper-server$(exeext)): Remove $(NETLIBS).
    
    	gcc:
    	* config.gcc: Move *-*-solaris2.11.[0-3]* to unsupported list.
    	<*-*-solaris2*> (default_use_cxa_atexit): Set unconditionally.
    	* configure.ac (AX_LIB_SOCKET_NSL): Don't call.
    	(NETLIBS): Remove.
    	(gcc_cv_ld_aligned_shf_merge): Remove.
    	(hidden_linkonce) <i?86-*-solaris2* | x86_64-*-solaris2*>: Remove.
    	(gcc_cv_target_dl_iterate_phdr) <*-*-solaris2*>: Always set to yes.
    	* Makefile.in (NETLIBS): Remove.
    	* configure, config.in, aclocal.m4: Regenerate.
    	* config/sol2.h: Don't check HAVE_SOLARIS_CRTS.
    	(STARTFILE_SPEC): Remove !HAVE_SOLARIS_CRTS case.
    	[USE_GLD] (LINK_EH_SPEC): Remove TARGET_DL_ITERATE_PHDR guard.
    	* config/i386/i386.cc (USE_HIDDEN_LINKONCE): Remove guard.
    	* varasm.cc (mergeable_string_section): Remove
    	HAVE_LD_ALIGNED_SHF_MERGE handling.
    	(mergeable_constant_section): Likewise.
    
    	* doc/install.texi (Specific,i?86-*-solaris2*): Reference Solaris
    	11.4 only.
    	(Specific, *-*-solaris2*): Document Solaris 11.3 removal.  Remove
    	11.3 references and caveats.  Update for 11.4.
    
    	gcc/cp:
    	* Make-lang.in (cc1plus$(exeext)): Remove $(NETLIBS).
    
    	gcc/objcp:
    	* Make-lang.in (cc1objplus$(exeext)): Remove $(NETLIBS).
    
    	gcc/testsuite:
    	* lib/target-supports.exp (check_effective_target_pie): Always
    	enable on *-*-solaris2*.
    
    	libgcc:
    	* configure.ac <*-*-solaris2*> (libgcc_cv_solaris_crts): Remove.
    	* config.host <*-*-solaris2*>: Remove !libgcc_cv_solaris_crts
    	support.
    	* configure, config.in: Regenerate.
    	* config/sol2/gmon.c (internal_mcount) [!HAVE_SOLARIS_CRTS]: Remove.
    	* config/i386/sol2-c1.S, config/sparc/sol2-c1.S: Remove.
    	* config/sol2/t-sol2 (crt1.o, gcrt1.o): Remove.
    
    	libstdc++-v3:
    	* testsuite/lib/dg-options.exp (add_options_for_net_ts)
    	<*-*-solaris2*>: Don't link with -lsocket -lnsl.
    f68e90a0
    History
    Remove obsolete Solaris 11.3 support
    Rainer Orth authored
    Support for Solaris 11.3 had already been obsoleted in GCC 13.  However,
    since the only Solaris system in the cfarm was running 11.3, I've kept
    it in tree until now when both Solaris 11.4/SPARC and x86 systems have
    been added.
    
    This patch actually removes the Solaris 11.3 support.  Apart from
    several minor simplifications, there are two more widespread changes:
    
    * In Solaris 11.4, libsocket and libnsl were folded into libc, so
      there's no longer a need to link them explictly.
    
    * Since Solaris 11.4, Solaris includes all crts needed by gcc (like
      crt1.o and gcrt1.o) with the base system.  All workarounds to provide
      fallbacks can thus go.
    
    Bootstrapped without regressions on i386-pc-solaris2.11 and
    sparc-sun-solaris2.11 (as/ld, gas/ld, and gas/gld) as well as Solaris
    11.3/x86 to ascertain that version is actually rejected.
    
    2024-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
    
    	c++tools:
    	* configure.ac (ax_lib_socket_nsl.m4): Don't sinclude.
    	(AX_LIB_SOCKET_NSL): Don't call.
    	(NETLIBS): Remove.
    	* configure: Regenerate.
    	* Makefile.in (NETLIBS): Remove.
    	(g++-mapper-server$(exeext)): Remove $(NETLIBS).
    
    	gcc:
    	* config.gcc: Move *-*-solaris2.11.[0-3]* to unsupported list.
    	<*-*-solaris2*> (default_use_cxa_atexit): Set unconditionally.
    	* configure.ac (AX_LIB_SOCKET_NSL): Don't call.
    	(NETLIBS): Remove.
    	(gcc_cv_ld_aligned_shf_merge): Remove.
    	(hidden_linkonce) <i?86-*-solaris2* | x86_64-*-solaris2*>: Remove.
    	(gcc_cv_target_dl_iterate_phdr) <*-*-solaris2*>: Always set to yes.
    	* Makefile.in (NETLIBS): Remove.
    	* configure, config.in, aclocal.m4: Regenerate.
    	* config/sol2.h: Don't check HAVE_SOLARIS_CRTS.
    	(STARTFILE_SPEC): Remove !HAVE_SOLARIS_CRTS case.
    	[USE_GLD] (LINK_EH_SPEC): Remove TARGET_DL_ITERATE_PHDR guard.
    	* config/i386/i386.cc (USE_HIDDEN_LINKONCE): Remove guard.
    	* varasm.cc (mergeable_string_section): Remove
    	HAVE_LD_ALIGNED_SHF_MERGE handling.
    	(mergeable_constant_section): Likewise.
    
    	* doc/install.texi (Specific,i?86-*-solaris2*): Reference Solaris
    	11.4 only.
    	(Specific, *-*-solaris2*): Document Solaris 11.3 removal.  Remove
    	11.3 references and caveats.  Update for 11.4.
    
    	gcc/cp:
    	* Make-lang.in (cc1plus$(exeext)): Remove $(NETLIBS).
    
    	gcc/objcp:
    	* Make-lang.in (cc1objplus$(exeext)): Remove $(NETLIBS).
    
    	gcc/testsuite:
    	* lib/target-supports.exp (check_effective_target_pie): Always
    	enable on *-*-solaris2*.
    
    	libgcc:
    	* configure.ac <*-*-solaris2*> (libgcc_cv_solaris_crts): Remove.
    	* config.host <*-*-solaris2*>: Remove !libgcc_cv_solaris_crts
    	support.
    	* configure, config.in: Regenerate.
    	* config/sol2/gmon.c (internal_mcount) [!HAVE_SOLARIS_CRTS]: Remove.
    	* config/i386/sol2-c1.S, config/sparc/sol2-c1.S: Remove.
    	* config/sol2/t-sol2 (crt1.o, gcrt1.o): Remove.
    
    	libstdc++-v3:
    	* testsuite/lib/dg-options.exp (add_options_for_net_ts)
    	<*-*-solaris2*>: Don't link with -lsocket -lnsl.