|
|
|
@ -1,4 +1,5 @@
|
|
|
|
|
# Copyright (C) 1998-2022 Free Software Foundation, Inc.
|
|
|
|
|
# Copyright The GNU Toolchain Authors.
|
|
|
|
|
# This file is part of the GNU C Library.
|
|
|
|
|
|
|
|
|
|
# The GNU C Library is free software; you can redistribute it and/or
|
|
|
|
@ -110,32 +111,60 @@ CFLAGS-tst-longjmp_chk3.c += -fexceptions -fasynchronous-unwind-tables
|
|
|
|
|
CPPFLAGS-tst-longjmp_chk3.c += -D_FORTIFY_SOURCE=1
|
|
|
|
|
CPPFLAGS-tst-realpath-chk.c += -D_FORTIFY_SOURCE=2
|
|
|
|
|
|
|
|
|
|
# _FORTIFY_SOURCE tests.
|
|
|
|
|
# Auto-generate tests for _FORTIFY_SOURCE for different levels, compilers and
|
|
|
|
|
# preprocessor conditions based on tst-fortify.c.
|
|
|
|
|
#
|
|
|
|
|
# To add a new test condition, define a cflags-$(cond) make variable to set
|
|
|
|
|
# CFLAGS for the file.
|
|
|
|
|
|
|
|
|
|
tests-all-chk = tst-fortify
|
|
|
|
|
tests-c-chk =
|
|
|
|
|
tests-cc-chk =
|
|
|
|
|
|
|
|
|
|
CFLAGS-tst-fortify.c += -Wno-format -Wno-deprecated-declarations -Wno-error
|
|
|
|
|
|
|
|
|
|
# No additional flags for the default tests.
|
|
|
|
|
define cflags-default
|
|
|
|
|
endef
|
|
|
|
|
|
|
|
|
|
define cflags-lfs
|
|
|
|
|
CFLAGS-tst-fortify-$(1)-lfs-$(2).$(1) += -D_FILE_OFFSET_BITS=64
|
|
|
|
|
endef
|
|
|
|
|
|
|
|
|
|
# We know these tests have problems with format strings, this is what
|
|
|
|
|
# we are testing. Disable that warning. They are also testing
|
|
|
|
|
# deprecated functions (notably gets) so disable that warning as well.
|
|
|
|
|
# And they also generate warnings from warning attributes, which
|
|
|
|
|
# cannot be disabled via pragmas, so require -Wno-error to be used.
|
|
|
|
|
CFLAGS-tst-chk1.c += -Wno-format -Wno-deprecated-declarations -Wno-error
|
|
|
|
|
CFLAGS-tst-chk2.c += -Wno-format -Wno-deprecated-declarations -Wno-error
|
|
|
|
|
CFLAGS-tst-chk3.c += -Wno-format -Wno-deprecated-declarations -Wno-error
|
|
|
|
|
CFLAGS-tst-chk4.cc += -Wno-format -Wno-deprecated-declarations -Wno-error
|
|
|
|
|
CFLAGS-tst-chk5.cc += -Wno-format -Wno-deprecated-declarations -Wno-error
|
|
|
|
|
CFLAGS-tst-chk6.cc += -Wno-format -Wno-deprecated-declarations -Wno-error
|
|
|
|
|
CFLAGS-tst-chk7.c += -Wno-format -Wno-deprecated-declarations -Wno-error
|
|
|
|
|
CFLAGS-tst-chk8.cc += -Wno-format -Wno-deprecated-declarations -Wno-error
|
|
|
|
|
CFLAGS-tst-lfschk1.c += -Wno-format -Wno-deprecated-declarations -Wno-error
|
|
|
|
|
CFLAGS-tst-lfschk2.c += -Wno-format -Wno-deprecated-declarations -Wno-error
|
|
|
|
|
CFLAGS-tst-lfschk3.c += -Wno-format -Wno-deprecated-declarations -Wno-error
|
|
|
|
|
CFLAGS-tst-lfschk4.cc += -Wno-format -Wno-deprecated-declarations -Wno-error
|
|
|
|
|
CFLAGS-tst-lfschk5.cc += -Wno-format -Wno-deprecated-declarations -Wno-error
|
|
|
|
|
CFLAGS-tst-lfschk6.cc += -Wno-format -Wno-deprecated-declarations -Wno-error
|
|
|
|
|
LDLIBS-tst-chk4 = -lstdc++
|
|
|
|
|
LDLIBS-tst-chk5 = -lstdc++
|
|
|
|
|
LDLIBS-tst-chk6 = -lstdc++
|
|
|
|
|
LDLIBS-tst-chk8 = -lstdc++
|
|
|
|
|
LDLIBS-tst-lfschk4 = -lstdc++
|
|
|
|
|
LDLIBS-tst-lfschk5 = -lstdc++
|
|
|
|
|
LDLIBS-tst-lfschk6 = -lstdc++
|
|
|
|
|
define gen-chk-test
|
|
|
|
|
tests-$(1)-chk += tst-fortify-$(1)-$(2)-$(3)
|
|
|
|
|
CFLAGS-tst-fortify-$(1)-$(2)-$(3).$(1) += -D_FORTIFY_SOURCE=$(3) -Wno-format \
|
|
|
|
|
-Wno-deprecated-declarations \
|
|
|
|
|
-Wno-error
|
|
|
|
|
$(eval $(call cflags-$(2),$(1),$(3)))
|
|
|
|
|
$(objpfx)tst-fortify-$(1)-$(2)-$(3).$(1): tst-fortify.c Makefile
|
|
|
|
|
( echo "/* Autogenerated from Makefile. */"; \
|
|
|
|
|
echo ""; \
|
|
|
|
|
echo "#include \"tst-fortify.c\"" ) > $$@.tmp
|
|
|
|
|
mv $$@.tmp $$@
|
|
|
|
|
endef
|
|
|
|
|
|
|
|
|
|
chk-extensions = c cc
|
|
|
|
|
chk-types = default lfs
|
|
|
|
|
chk-levels = 1 2 3
|
|
|
|
|
|
|
|
|
|
$(foreach e,$(chk-extensions), \
|
|
|
|
|
$(foreach t,$(chk-types), \
|
|
|
|
|
$(foreach l,$(chk-levels), \
|
|
|
|
|
$(eval $(call gen-chk-test,$(e),$(t),$(l))))))
|
|
|
|
|
|
|
|
|
|
tests-all-chk += $(tests-c-chk) $(tests-cc-chk)
|
|
|
|
|
|
|
|
|
|
define link-cc
|
|
|
|
|
LDLIBS-$(1) = -lstdc++
|
|
|
|
|
endef
|
|
|
|
|
$(foreach t,$(tests-cc-chk), $(eval $(call link-cc,$(t))))
|
|
|
|
|
|
|
|
|
|
# backtrace_symbols only works if we link with -rdynamic. backtrace
|
|
|
|
|
# requires unwind tables on most architectures.
|
|
|
|
@ -152,19 +181,25 @@ LDFLAGS-tst-backtrace6 = -rdynamic
|
|
|
|
|
|
|
|
|
|
CFLAGS-tst-ssp-1.c += -fstack-protector-all
|
|
|
|
|
|
|
|
|
|
tests = backtrace-tst tst-longjmp_chk tst-chk1 tst-chk2 tst-chk3 \
|
|
|
|
|
tst-lfschk1 tst-lfschk2 tst-lfschk3 test-strcpy_chk test-stpcpy_chk \
|
|
|
|
|
tst-chk4 tst-chk5 tst-chk6 tst-chk7 tst-chk8 tst-lfschk4 tst-lfschk5 \
|
|
|
|
|
tst-lfschk6 tst-longjmp_chk2 tst-backtrace2 tst-backtrace3 \
|
|
|
|
|
tst-backtrace4 tst-backtrace5 tst-backtrace6 tst-realpath-chk
|
|
|
|
|
tests = backtrace-tst \
|
|
|
|
|
tst-longjmp_chk \
|
|
|
|
|
test-strcpy_chk \
|
|
|
|
|
test-stpcpy_chk \
|
|
|
|
|
tst-longjmp_chk2 \
|
|
|
|
|
tst-backtrace2 \
|
|
|
|
|
tst-backtrace3 \
|
|
|
|
|
tst-backtrace4 \
|
|
|
|
|
tst-backtrace5 \
|
|
|
|
|
tst-backtrace6 \
|
|
|
|
|
tst-realpath-chk \
|
|
|
|
|
$(tests-all-chk)
|
|
|
|
|
|
|
|
|
|
ifeq ($(have-ssp),yes)
|
|
|
|
|
tests += tst-ssp-1
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifeq (,$(CXX))
|
|
|
|
|
tests-unsupported = tst-chk4 tst-chk5 tst-chk6 tst-chk8 \
|
|
|
|
|
tst-lfschk4 tst-lfschk5 tst-lfschk6
|
|
|
|
|
tests-unsupported = $(tests-cc-chk)
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
extra-libs = libpcprofile
|
|
|
|
@ -185,20 +220,10 @@ ifeq ($(run-built-tests),yes)
|
|
|
|
|
LOCALES := de_DE.UTF-8
|
|
|
|
|
include ../gen-locales.mk
|
|
|
|
|
|
|
|
|
|
$(objpfx)tst-chk1.out: $(gen-locales)
|
|
|
|
|
$(objpfx)tst-chk2.out: $(gen-locales)
|
|
|
|
|
$(objpfx)tst-chk3.out: $(gen-locales)
|
|
|
|
|
$(objpfx)tst-chk4.out: $(gen-locales)
|
|
|
|
|
$(objpfx)tst-chk5.out: $(gen-locales)
|
|
|
|
|
$(objpfx)tst-chk6.out: $(gen-locales)
|
|
|
|
|
$(objpfx)tst-chk7.out: $(gen-locales)
|
|
|
|
|
$(objpfx)tst-chk8.out: $(gen-locales)
|
|
|
|
|
$(objpfx)tst-lfschk1.out: $(gen-locales)
|
|
|
|
|
$(objpfx)tst-lfschk2.out: $(gen-locales)
|
|
|
|
|
$(objpfx)tst-lfschk3.out: $(gen-locales)
|
|
|
|
|
$(objpfx)tst-lfschk4.out: $(gen-locales)
|
|
|
|
|
$(objpfx)tst-lfschk5.out: $(gen-locales)
|
|
|
|
|
$(objpfx)tst-lfschk6.out: $(gen-locales)
|
|
|
|
|
define chk-gen-locales
|
|
|
|
|
$(objpfx)$(1).out: $(gen-locales)
|
|
|
|
|
endef
|
|
|
|
|
$(foreach t, $(tests-all-chk), $(eval $(call chk-gen-locales,$(t))))
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
sLIBdir := $(shell echo $(slibdir) | sed 's,lib\(\|64\)$$,\\\\$$LIB,')
|
|
|
|
|