If the system C library provides stack protector, libssp is unused and
TARGET_LIBC_PROVIDES_SSP is defined in auto-host.h.  Build libssp only
if --enable-libssp is used or TARGET_LIBC_PROVIDES_SSP isn't defined.

PR other/125850
* Makefile.am (target_noncanonical): Moved after MAINT_CHARSET.
Add rules only if BUILD_LIBSSP is TRUE.
* Makefile.in: Regenerated.
* configure: Likewise.
* configure.ac (BUILD_LIBSSP): New.  Define it to TRUE only if
--enable-libssp is used or TARGET_LIBC_PROVIDES_SSP isn't
defined in auto-host.h.

-- 
H.J.
From b74e5e8585660b092889becf0eaf016fe0a59926 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <[email protected]>
Date: Wed, 17 Jun 2026 10:35:02 +0800
Subject: [PATCH] libssp: Build if TARGET_LIBC_PROVIDES_SSP isn't defined

If the system C library provides stack protector, libssp is unused and
TARGET_LIBC_PROVIDES_SSP is defined in auto-host.h.  Build libssp only
if --enable-libssp is used or TARGET_LIBC_PROVIDES_SSP isn't defined.

	PR other/125850
	* Makefile.am (target_noncanonical): Moved after MAINT_CHARSET.
	Add rules only if BUILD_LIBSSP is TRUE.
	* Makefile.in: Regenerated.
	* configure: Likewise.
	* configure.ac (BUILD_LIBSSP): New.  Define it to TRUE only if
	--enable-libssp is used or TARGET_LIBC_PROVIDES_SSP isn't
	defined in auto-host.h.

Signed-off-by: H.J. Lu <[email protected]>
---
 libssp/Makefile.am  |   6 +-
 libssp/Makefile.in  | 245 +++++++++++++++++++++++---------------------
 libssp/configure    |  59 ++++++++++-
 libssp/configure.ac |  19 ++++
 4 files changed, 210 insertions(+), 119 deletions(-)

diff --git a/libssp/Makefile.am b/libssp/Makefile.am
index 9febd80947e..5805c96bebc 100644
--- a/libssp/Makefile.am
+++ b/libssp/Makefile.am
@@ -7,6 +7,9 @@ AUTOMAKE_OPTIONS = foreign
 ACLOCAL_AMFLAGS = -I .. -I ../config
 MAINT_CHARSET = latin1
 
+target_noncanonical = @target_noncanonical@
+
+if BUILD_LIBSSP
 # May be used by various substitution variables.
 gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER)
 
@@ -36,7 +39,6 @@ AM_CFLAGS += $(XCFLAGS)
 
 toolexeclib_LTLIBRARIES = libssp.la libssp_nonshared.la
 
-target_noncanonical = @target_noncanonical@
 libsubincludedir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include
 nobase_libsubinclude_HEADERS = ssp/ssp.h ssp/string.h ssp/stdio.h ssp/unistd.h
 
@@ -111,3 +113,5 @@ MAKEOVERRIDES=
 ## ################################################################
 
 include $(top_srcdir)/../multilib.am
+
+endif # BUILD_LIBSSP
diff --git a/libssp/Makefile.in b/libssp/Makefile.in
index 8d8be3e5f77..54f016113ea 100644
--- a/libssp/Makefile.in
+++ b/libssp/Makefile.in
@@ -90,6 +90,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+@BUILD_LIBSSP_FALSE@libssp_la_DEPENDENCIES =
+@BUILD_LIBSSP_FALSE@libssp_nonshared_la_DEPENDENCIES =
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
@@ -110,7 +112,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
-	$(am__configure_deps) $(nobase_libsubinclude_HEADERS)
+	$(am__configure_deps) $(am__nobase_libsubinclude_HEADERS_DIST)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
  configure.lineno config.status.lineno
 mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
@@ -147,10 +149,12 @@ am__uninstall_files_from_dir = { \
 am__installdirs = "$(DESTDIR)$(toolexeclibdir)" \
 	"$(DESTDIR)$(libsubincludedir)"
 LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
-am_libssp_la_OBJECTS = ssp.lo gets-chk.lo memcpy-chk.lo memmove-chk.lo \
-	mempcpy-chk.lo memset-chk.lo snprintf-chk.lo sprintf-chk.lo \
-	stpcpy-chk.lo strcat-chk.lo strcpy-chk.lo strncat-chk.lo \
-	strncpy-chk.lo vsnprintf-chk.lo vsprintf-chk.lo
+@BUILD_LIBSSP_TRUE@am_libssp_la_OBJECTS = ssp.lo gets-chk.lo \
+@BUILD_LIBSSP_TRUE@	memcpy-chk.lo memmove-chk.lo mempcpy-chk.lo \
+@BUILD_LIBSSP_TRUE@	memset-chk.lo snprintf-chk.lo \
+@BUILD_LIBSSP_TRUE@	sprintf-chk.lo stpcpy-chk.lo strcat-chk.lo \
+@BUILD_LIBSSP_TRUE@	strcpy-chk.lo strncat-chk.lo strncpy-chk.lo \
+@BUILD_LIBSSP_TRUE@	vsnprintf-chk.lo vsprintf-chk.lo
 libssp_la_OBJECTS = $(am_libssp_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -159,12 +163,16 @@ am__v_lt_1 =
 libssp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(libssp_la_LDFLAGS) $(LDFLAGS) -o $@
-am_libssp_nonshared_la_OBJECTS = libssp_nonshared_la-ssp-local.lo
+@BUILD_LIBSSP_TRUE@am_libssp_la_rpath = -rpath $(toolexeclibdir)
+@BUILD_LIBSSP_TRUE@am_libssp_nonshared_la_OBJECTS =  \
+@BUILD_LIBSSP_TRUE@	libssp_nonshared_la-ssp-local.lo
 libssp_nonshared_la_OBJECTS = $(am_libssp_nonshared_la_OBJECTS)
 libssp_nonshared_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libssp_nonshared_la_CFLAGS) $(CFLAGS) \
 	$(libssp_nonshared_la_LDFLAGS) $(LDFLAGS) -o $@
+@BUILD_LIBSSP_TRUE@am_libssp_nonshared_la_rpath = -rpath \
+@BUILD_LIBSSP_TRUE@	$(toolexeclibdir)
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
 am__v_P_0 = false
@@ -205,6 +213,8 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__nobase_libsubinclude_HEADERS_DIST = ssp/ssp.h ssp/string.h \
+	ssp/stdio.h ssp/unistd.h
 HEADERS = $(nobase_libsubinclude_HEADERS)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
 	$(LISP)config.h.in
@@ -360,38 +370,37 @@ ACLOCAL_AMFLAGS = -I .. -I ../config
 MAINT_CHARSET = latin1
 
 # May be used by various substitution variables.
-gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER)
-@LIBSSP_USE_SYMVER_FALSE@version_arg = 
-@LIBSSP_USE_SYMVER_GNU_TRUE@@LIBSSP_USE_SYMVER_TRUE@version_arg = -Wl,--version-script=$(srcdir)/ssp.map
-@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@version_arg = -Wl,-M,ssp.map-sun
-@LIBSSP_USE_SYMVER_FALSE@version_dep = 
-@LIBSSP_USE_SYMVER_GNU_TRUE@@LIBSSP_USE_SYMVER_TRUE@version_dep = $(srcdir)/ssp.map
-@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@version_dep = ssp.map-sun
-AM_CFLAGS = -Wall $(XCFLAGS)
-toolexeclib_LTLIBRARIES = libssp.la libssp_nonshared.la
-libsubincludedir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include
-nobase_libsubinclude_HEADERS = ssp/ssp.h ssp/string.h ssp/stdio.h ssp/unistd.h
-libssp_la_SOURCES = \
-	ssp.c gets-chk.c memcpy-chk.c memmove-chk.c mempcpy-chk.c \
-	memset-chk.c snprintf-chk.c sprintf-chk.c stpcpy-chk.c \
-	strcat-chk.c strcpy-chk.c strncat-chk.c strncpy-chk.c \
-	vsnprintf-chk.c vsprintf-chk.c
-
-libssp_la_LIBADD = 
-libssp_la_DEPENDENCIES = $(version_dep) $(libssp_la_LIBADD)
-@ENABLE_DARWIN_AT_RPATH_TRUE@libssp_darwin_rpath =  \
-@ENABLE_DARWIN_AT_RPATH_TRUE@	-Wc,-nodefaultrpaths \
-@ENABLE_DARWIN_AT_RPATH_TRUE@	-Wl,-rpath,@loader_path
-libssp_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
-		    $(version_arg) $(lt_host_flags) $(libssp_darwin_rpath)
-
-libssp_nonshared_la_SOURCES = \
-	ssp-local.c
-
-libssp_nonshared_la_CFLAGS = -prefer-pic $(XCFLAGS)
-libssp_nonshared_la_LIBADD = 
-libssp_nonshared_la_DEPENDENCIES = $(libssp_nonshared_la_LIBADD)
-libssp_nonshared_la_LDFLAGS = -static
+@BUILD_LIBSSP_TRUE@gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER)
+@BUILD_LIBSSP_TRUE@@LIBSSP_USE_SYMVER_FALSE@version_arg = 
+@BUILD_LIBSSP_TRUE@@LIBSSP_USE_SYMVER_GNU_TRUE@@LIBSSP_USE_SYMVER_TRUE@version_arg = -Wl,--version-script=$(srcdir)/ssp.map
+@BUILD_LIBSSP_TRUE@@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@version_arg = -Wl,-M,ssp.map-sun
+@BUILD_LIBSSP_TRUE@@LIBSSP_USE_SYMVER_FALSE@version_dep = 
+@BUILD_LIBSSP_TRUE@@LIBSSP_USE_SYMVER_GNU_TRUE@@LIBSSP_USE_SYMVER_TRUE@version_dep = $(srcdir)/ssp.map
+@BUILD_LIBSSP_TRUE@@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@version_dep = ssp.map-sun
+@BUILD_LIBSSP_TRUE@AM_CFLAGS = -Wall $(XCFLAGS)
+@BUILD_LIBSSP_TRUE@toolexeclib_LTLIBRARIES = libssp.la libssp_nonshared.la
+@BUILD_LIBSSP_TRUE@libsubincludedir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include
+@BUILD_LIBSSP_TRUE@nobase_libsubinclude_HEADERS = ssp/ssp.h ssp/string.h ssp/stdio.h ssp/unistd.h
+@BUILD_LIBSSP_TRUE@libssp_la_SOURCES = \
+@BUILD_LIBSSP_TRUE@	ssp.c gets-chk.c memcpy-chk.c memmove-chk.c mempcpy-chk.c \
+@BUILD_LIBSSP_TRUE@	memset-chk.c snprintf-chk.c sprintf-chk.c stpcpy-chk.c \
+@BUILD_LIBSSP_TRUE@	strcat-chk.c strcpy-chk.c strncat-chk.c strncpy-chk.c \
+@BUILD_LIBSSP_TRUE@	vsnprintf-chk.c vsprintf-chk.c
+
+@BUILD_LIBSSP_TRUE@libssp_la_LIBADD = 
+@BUILD_LIBSSP_TRUE@libssp_la_DEPENDENCIES = $(version_dep) $(libssp_la_LIBADD)
+@BUILD_LIBSSP_TRUE@@ENABLE_DARWIN_AT_RPATH_TRUE@libssp_darwin_rpath = -Wc,-nodefaultrpaths \
+@BUILD_LIBSSP_TRUE@@ENABLE_DARWIN_AT_RPATH_TRUE@	-Wl,-rpath,@loader_path
+@BUILD_LIBSSP_TRUE@libssp_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
+@BUILD_LIBSSP_TRUE@		    $(version_arg) $(lt_host_flags) $(libssp_darwin_rpath)
+
+@BUILD_LIBSSP_TRUE@libssp_nonshared_la_SOURCES = \
+@BUILD_LIBSSP_TRUE@	ssp-local.c
+
+@BUILD_LIBSSP_TRUE@libssp_nonshared_la_CFLAGS = -prefer-pic $(XCFLAGS)
+@BUILD_LIBSSP_TRUE@libssp_nonshared_la_LIBADD = 
+@BUILD_LIBSSP_TRUE@libssp_nonshared_la_DEPENDENCIES = $(libssp_nonshared_la_LIBADD)
+@BUILD_LIBSSP_TRUE@libssp_nonshared_la_LDFLAGS = -static
 
 # XXX hack alert
 # From libffi/Makefile.am
@@ -399,51 +408,51 @@ libssp_nonshared_la_LDFLAGS = -static
 # Work around what appears to be a GNU make bug handling MAKEFLAGS
 # values defined in terms of make variables, as is the case for CC and
 # friends when we are called from the top level Makefile.
-AM_MAKEFLAGS = \
-	"AR_FLAGS=$(AR_FLAGS)" \
-	"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
-	"CFLAGS=$(CFLAGS)" \
-	"CXXFLAGS=$(CXXFLAGS)" \
-	"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
-	"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
-	"EXPECT=$(EXPECT)" \
-	"INSTALL=$(INSTALL)" \
-	"INSTALL_DATA=$(INSTALL_DATA)" \
-	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
-	"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
-	"JC1FLAGS=$(JC1FLAGS)" \
-	"LDFLAGS=$(LDFLAGS)" \
-	"LIBCFLAGS=$(LIBCFLAGS)" \
-	"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
-	"MAKE=$(MAKE)" \
-	"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
-	"PICFLAG=$(PICFLAG)" \
-	"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
-	"SHELL=$(SHELL)" \
-	"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
-	"exec_prefix=$(exec_prefix)" \
-	"infodir=$(infodir)" \
-	"libdir=$(libdir)" \
-	"prefix=$(prefix)" \
-	"includedir=$(includedir)" \
-	"AR=$(AR)" \
-	"AS=$(AS)" \
-	"CC=$(CC)" \
-	"CXX=$(CXX)" \
-	"LD=$(LD)" \
-	"LIBCFLAGS=$(LIBCFLAGS)" \
-	"NM=$(NM)" \
-	"PICFLAG=$(PICFLAG)" \
-	"RANLIB=$(RANLIB)" \
-	"DESTDIR=$(DESTDIR)"
-
-MAKEOVERRIDES = 
-MULTISRCTOP = 
-MULTIBUILDTOP = 
-MULTIDIRS = 
-MULTISUBDIR = 
-MULTIDO = true
-MULTICLEAN = true
+@BUILD_LIBSSP_TRUE@AM_MAKEFLAGS = \
+@BUILD_LIBSSP_TRUE@	"AR_FLAGS=$(AR_FLAGS)" \
+@BUILD_LIBSSP_TRUE@	"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
+@BUILD_LIBSSP_TRUE@	"CFLAGS=$(CFLAGS)" \
+@BUILD_LIBSSP_TRUE@	"CXXFLAGS=$(CXXFLAGS)" \
+@BUILD_LIBSSP_TRUE@	"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
+@BUILD_LIBSSP_TRUE@	"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
+@BUILD_LIBSSP_TRUE@	"EXPECT=$(EXPECT)" \
+@BUILD_LIBSSP_TRUE@	"INSTALL=$(INSTALL)" \
+@BUILD_LIBSSP_TRUE@	"INSTALL_DATA=$(INSTALL_DATA)" \
+@BUILD_LIBSSP_TRUE@	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
+@BUILD_LIBSSP_TRUE@	"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
+@BUILD_LIBSSP_TRUE@	"JC1FLAGS=$(JC1FLAGS)" \
+@BUILD_LIBSSP_TRUE@	"LDFLAGS=$(LDFLAGS)" \
+@BUILD_LIBSSP_TRUE@	"LIBCFLAGS=$(LIBCFLAGS)" \
+@BUILD_LIBSSP_TRUE@	"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
+@BUILD_LIBSSP_TRUE@	"MAKE=$(MAKE)" \
+@BUILD_LIBSSP_TRUE@	"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
+@BUILD_LIBSSP_TRUE@	"PICFLAG=$(PICFLAG)" \
+@BUILD_LIBSSP_TRUE@	"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
+@BUILD_LIBSSP_TRUE@	"SHELL=$(SHELL)" \
+@BUILD_LIBSSP_TRUE@	"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
+@BUILD_LIBSSP_TRUE@	"exec_prefix=$(exec_prefix)" \
+@BUILD_LIBSSP_TRUE@	"infodir=$(infodir)" \
+@BUILD_LIBSSP_TRUE@	"libdir=$(libdir)" \
+@BUILD_LIBSSP_TRUE@	"prefix=$(prefix)" \
+@BUILD_LIBSSP_TRUE@	"includedir=$(includedir)" \
+@BUILD_LIBSSP_TRUE@	"AR=$(AR)" \
+@BUILD_LIBSSP_TRUE@	"AS=$(AS)" \
+@BUILD_LIBSSP_TRUE@	"CC=$(CC)" \
+@BUILD_LIBSSP_TRUE@	"CXX=$(CXX)" \
+@BUILD_LIBSSP_TRUE@	"LD=$(LD)" \
+@BUILD_LIBSSP_TRUE@	"LIBCFLAGS=$(LIBCFLAGS)" \
+@BUILD_LIBSSP_TRUE@	"NM=$(NM)" \
+@BUILD_LIBSSP_TRUE@	"PICFLAG=$(PICFLAG)" \
+@BUILD_LIBSSP_TRUE@	"RANLIB=$(RANLIB)" \
+@BUILD_LIBSSP_TRUE@	"DESTDIR=$(DESTDIR)"
+
+@BUILD_LIBSSP_TRUE@MAKEOVERRIDES = 
+@BUILD_LIBSSP_TRUE@MULTISRCTOP = 
+@BUILD_LIBSSP_TRUE@MULTIBUILDTOP = 
+@BUILD_LIBSSP_TRUE@MULTIDIRS = 
+@BUILD_LIBSSP_TRUE@MULTISUBDIR = 
+@BUILD_LIBSSP_TRUE@MULTIDO = true
+@BUILD_LIBSSP_TRUE@MULTICLEAN = true
 all: config.h
 	$(MAKE) $(AM_MAKEFLAGS) all-am
 
@@ -537,10 +546,10 @@ clean-toolexeclibLTLIBRARIES:
 	}
 
 libssp.la: $(libssp_la_OBJECTS) $(libssp_la_DEPENDENCIES) $(EXTRA_libssp_la_DEPENDENCIES) 
-	$(AM_V_CCLD)$(libssp_la_LINK) -rpath $(toolexeclibdir) $(libssp_la_OBJECTS) $(libssp_la_LIBADD) $(LIBS)
+	$(AM_V_CCLD)$(libssp_la_LINK) $(am_libssp_la_rpath) $(libssp_la_OBJECTS) $(libssp_la_LIBADD) $(LIBS)
 
 libssp_nonshared.la: $(libssp_nonshared_la_OBJECTS) $(libssp_nonshared_la_DEPENDENCIES) $(EXTRA_libssp_nonshared_la_DEPENDENCIES) 
-	$(AM_V_CCLD)$(libssp_nonshared_la_LINK) -rpath $(toolexeclibdir) $(libssp_nonshared_la_OBJECTS) $(libssp_nonshared_la_LIBADD) $(LIBS)
+	$(AM_V_CCLD)$(libssp_nonshared_la_LINK) $(am_libssp_nonshared_la_rpath) $(libssp_nonshared_la_OBJECTS) $(libssp_nonshared_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -686,6 +695,7 @@ distclean-tags:
 	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
 check-am: all-am
 check: check-am
+@BUILD_LIBSSP_FALSE@all-local:
 all-am: Makefile $(LTLIBRARIES) $(HEADERS) config.h all-local
 installdirs:
 	for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(libsubincludedir)"; do \
@@ -721,6 +731,11 @@ distclean-generic:
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
+@BUILD_LIBSSP_FALSE@mostlyclean-local:
+@BUILD_LIBSSP_FALSE@distclean-local:
+@BUILD_LIBSSP_FALSE@clean-local:
+@BUILD_LIBSSP_FALSE@install-exec-local:
+@BUILD_LIBSSP_FALSE@maintainer-clean-local:
 clean: clean-am
 
 clean-am: clean-generic clean-libtool clean-local \
@@ -820,40 +835,40 @@ uninstall-am: uninstall-nobase_libsubincludeHEADERS \
 
 .PRECIOUS: Makefile
 
-@LIBSSP_USE_SYMVER_SUN_TRUE@@[email protected] : $(srcdir)/ssp.map \
-@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@		$(top_srcdir)/../contrib/make_sunver.pl \
-@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@		$(libssp_la_OBJECTS) $(libssp_la_LIBADD)
-@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@	perl $(top_srcdir)/../contrib/make_sunver.pl \
-@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@	  $(srcdir)/ssp.map \
-@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@	  $(libssp_la_OBJECTS) $(libssp_la_LIBADD) \
-@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@	 > $@ || (rm -f $@ ; exit 1)
+@BUILD_LIBSSP_TRUE@@LIBSSP_USE_SYMVER_SUN_TRUE@@[email protected] : $(srcdir)/ssp.map \
+@BUILD_LIBSSP_TRUE@@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@		$(top_srcdir)/../contrib/make_sunver.pl \
+@BUILD_LIBSSP_TRUE@@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@		$(libssp_la_OBJECTS) $(libssp_la_LIBADD)
+@BUILD_LIBSSP_TRUE@@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@	perl $(top_srcdir)/../contrib/make_sunver.pl \
+@BUILD_LIBSSP_TRUE@@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@	  $(srcdir)/ssp.map \
+@BUILD_LIBSSP_TRUE@@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@	  $(libssp_la_OBJECTS) $(libssp_la_LIBADD) \
+@BUILD_LIBSSP_TRUE@@LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@	 > $@ || (rm -f $@ ; exit 1)
 
 # GNU Make needs to see an explicit $(MAKE) variable in the command it
 # runs to enable its job server during parallel builds.  Hence the
 # comments below.
-all-multi:
-	$(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
-install-multi:
-	$(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE)
-mostlyclean-multi:
-	$(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean # $(MAKE)
-clean-multi:
-	$(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean # $(MAKE)
-distclean-multi:
-	$(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE)
-maintainer-clean-multi:
-	$(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean # $(MAKE)
-
-.MAKE .PHONY: all-multi clean-multi distclean-multi install-am \
-	      install-multi maintainer-clean-multi mostlyclean-multi
-
-install-exec-local: install-multi
-
-all-local: all-multi
-mostlyclean-local: mostlyclean-multi
-clean-local: clean-multi
-distclean-local: distclean-multi
-maintainer-clean-local: maintainer-clean-multi
+@BUILD_LIBSSP_TRUE@all-multi:
+@BUILD_LIBSSP_TRUE@	$(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
+@BUILD_LIBSSP_TRUE@install-multi:
+@BUILD_LIBSSP_TRUE@	$(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE)
+@BUILD_LIBSSP_TRUE@mostlyclean-multi:
+@BUILD_LIBSSP_TRUE@	$(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean # $(MAKE)
+@BUILD_LIBSSP_TRUE@clean-multi:
+@BUILD_LIBSSP_TRUE@	$(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean # $(MAKE)
+@BUILD_LIBSSP_TRUE@distclean-multi:
+@BUILD_LIBSSP_TRUE@	$(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE)
+@BUILD_LIBSSP_TRUE@maintainer-clean-multi:
+@BUILD_LIBSSP_TRUE@	$(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean # $(MAKE)
+
+@[email protected] .PHONY: all-multi clean-multi distclean-multi install-am \
+@BUILD_LIBSSP_TRUE@	      install-multi maintainer-clean-multi mostlyclean-multi
+
+@BUILD_LIBSSP_TRUE@install-exec-local: install-multi
+
+@BUILD_LIBSSP_TRUE@all-local: all-multi
+@BUILD_LIBSSP_TRUE@mostlyclean-local: mostlyclean-multi
+@BUILD_LIBSSP_TRUE@clean-local: clean-multi
+@BUILD_LIBSSP_TRUE@distclean-local: distclean-multi
+@BUILD_LIBSSP_TRUE@maintainer-clean-local: maintainer-clean-multi
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/libssp/configure b/libssp/configure
index aa7ea4a3a9f..3dde9272d7e 100755
--- a/libssp/configure
+++ b/libssp/configure
@@ -668,6 +668,8 @@ LIBSSP_USE_SYMVER_GNU_TRUE
 LIBSSP_USE_SYMVER_FALSE
 LIBSSP_USE_SYMVER_TRUE
 XCFLAGS
+BUILD_LIBSSP_FALSE
+BUILD_LIBSSP_TRUE
 CPP
 am__fastdepCC_FALSE
 am__fastdepCC_TRUE
@@ -776,6 +778,7 @@ enable_version_specific_runtime_libs
 enable_maintainer_mode
 enable_multilib
 enable_dependency_tracking
+enable_libssp
 enable_cet
 enable_symvers
 enable_shared
@@ -1423,6 +1426,7 @@ Optional Features:
                           do not reject slow dependency extractors
   --disable-dependency-tracking
                           speeds up one-time build
+  --enable-libssp         build libssp
   --enable-cet            enable Intel CET in target libraries [default=auto]
   --disable-symvers       disable symbol versioning for libssp
   --enable-shared[=PKGS]  build shared libraries [default=yes]
@@ -4338,11 +4342,56 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
+build_ssp=default
+# Check whether --enable-libssp was given.
+if test "${enable_libssp+set}" = set; then :
+  enableval=$enable_libssp; case "${enableval}" in
+ yes) build_ssp=yes ;;
+ *) as_fn_error $? "unsupported libssp setting $enableval" "$LINENO" 5 ;;
+ esac
+fi
+
+if test "x$build_ssp" = "xdefault"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libssp is used" >&5
+$as_echo_n "checking whether libssp is used... " >&6; }
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include "auto-host.h"
+#ifdef TARGET_LIBC_PROVIDES_SSP
+# error libssp is unused!
+#endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  build_ssp=yes
+else
+  build_ssp=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $build_ssp" >&5
+$as_echo "$build_ssp" >&6; }
+fi
+ if test x$build_ssp = xyes; then
+  BUILD_LIBSSP_TRUE=
+  BUILD_LIBSSP_FALSE='#'
+else
+  BUILD_LIBSSP_TRUE='#'
+  BUILD_LIBSSP_FALSE=
+fi
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -fstack-protector works" >&5
 $as_echo_n "checking whether -fstack-protector works... " >&6; }
 save_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -fstack-protector -Werror"
-
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -11553,7 +11602,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11556 "configure"
+#line 11605 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11659,7 +11708,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11662 "configure"
+#line 11711 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12143,6 +12192,10 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
   as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${BUILD_LIBSSP_TRUE}" && test -z "${BUILD_LIBSSP_FALSE}"; then
+  as_fn_error $? "conditional \"BUILD_LIBSSP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${LIBSSP_USE_SYMVER_TRUE}" && test -z "${LIBSSP_USE_SYMVER_FALSE}"; then
   as_fn_error $? "conditional \"LIBSSP_USE_SYMVER\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
diff --git a/libssp/configure.ac b/libssp/configure.ac
index 5c5698fa3a2..40865281288 100644
--- a/libssp/configure.ac
+++ b/libssp/configure.ac
@@ -49,6 +49,25 @@ if test "x$GCC" != "xyes"; then
 fi
 AC_PROG_CPP
 
+build_ssp=default
+AC_ARG_ENABLE(libssp,
+[AS_HELP_STRING([--enable-libssp], [build libssp])],
+[case "${enableval}" in
+ yes) build_ssp=yes ;;
+ *) AC_MSG_ERROR([unsupported libssp setting $enableval]) ;;
+ esac], [])
+if test "x$build_ssp" = "xdefault"; then
+  AC_MSG_CHECKING([whether libssp is used])
+  AC_TRY_COMPILE([
+#include "auto-host.h"
+#ifdef TARGET_LIBC_PROVIDES_SSP
+# error libssp is unused!
+#endif],,
+  [build_ssp=yes],[build_ssp=no])
+  AC_MSG_RESULT($build_ssp)
+fi
+AM_CONDITIONAL([BUILD_LIBSSP], [test x$build_ssp = xyes])
+
 AC_MSG_CHECKING([whether -fstack-protector works])
 save_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -fstack-protector -Werror"
-- 
2.54.0

Reply via email to