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
