X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=Makeconfig;h=a22181c22afd798807270aa3d9eab96bcaf21423;hb=HEAD;hp=1908f275a9b7d8b6dd16de9e1c4e63d817ed8fe3;hpb=d4697bc93dc27a7bbf275ce7dd351bb1bfcf28de;p=platform%2Fupstream%2Fglibc.git diff --git a/Makeconfig b/Makeconfig index 1908f27..a22181c 100644 --- a/Makeconfig +++ b/Makeconfig @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2014 Free Software Foundation, Inc. +# Copyright (C) 1991-2015 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -86,12 +86,12 @@ $(common-objpfx)config.make: $(common-objpfx)config.status \ $(common-objpfx)config.status: $(..)version.h $(..)configure \ $(foreach dir,$(sysdirs),\ $(wildcard $(dir)/Implies) \ - $(patsubst %.in,%,\ + $(patsubst %.ac,%,\ $(firstword $(wildcard \ $(addprefix $(dir)/,configure configure.ac))))) \ - $(patsubst %.in,%,\ + $(patsubst %.ac,%,\ $(wildcard $(..)sysdeps/*/preconfigure $(..)sysdeps/*/preconfigure.ac)) \ - $(patsubst %.in,%,\ + $(patsubst %.ac,%,\ $(foreach add-on,$(add-ons),\ $(firstword $(wildcard \ $(addprefix $(firstword $(filter /%,$(add-on)) $(..)$(add-on))/,\ @@ -259,7 +259,7 @@ inst_sysconfdir = $(install_root)$(sysconfdir) # Directory for the database files and Makefile for nss_db. ifndef vardbdir -vardbdir = $(localstatedir)/db +vardbdir = /var/lib/misc endif inst_vardbdir = $(install_root)$(vardbdir) @@ -451,7 +451,7 @@ rtld-LDFLAGS = -Wl,-dynamic-linker=$(rtlddir)/$(rtld-installed-name) endif ifndef rtld-tests-LDFLAGS ifeq (yes,$(build-hardcoded-path-in-tests)) -rtld-tests-LDFLAGS = -Wl,-dynamic-linker=$(common-objpfx)elf/ld.so +rtld-tests-LDFLAGS = -Wl,-dynamic-linker=$(elf-objpfx)ld.so else rtld-tests-LDFLAGS = $(rtld-LDFLAGS) endif @@ -470,7 +470,7 @@ link-libc-tests-rpath-link = $(link-libc-rpath-link) endif link-libc-before-gnulib = $(common-objpfx)libc.so$(libc.so-version) \ $(common-objpfx)$(patsubst %,$(libtype.oS),c) \ - $(as-needed) $(common-objpfx)elf/ld.so \ + $(as-needed) $(elf-objpfx)ld.so \ $(no-as-needed) link-libc = $(link-libc-rpath-link) $(link-libc-before-gnulib) $(gnulib) link-libc-tests = $(link-libc-tests-rpath-link) \ @@ -485,8 +485,6 @@ link-libc-tests = $(common-objpfx)libc.a $(otherlibs) $(gnulib-tests) $(common-o endif endif -elfobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)elf) - # Differences in the linkers on the various platforms. LDFLAGS-rpath-ORIGIN = -Wl,-rpath,'$$ORIGIN' LDFLAGS-soname-fname = -Wl,-soname,$(@F) @@ -601,6 +599,12 @@ run-built-tests = yes endif endif +# Whether to stop immediately when a test fails. Nonempty means to +# stop, empty means not to stop. +ifndef stop-on-test-failure +stop-on-test-failure = +endif + # How to run a program we just linked with our library. # The program binary is assumed to be $(word 2,$^). built-program-file = $(dir $(word 2,$^))$(notdir $(word 2,$^)) @@ -624,17 +628,30 @@ run-via-rtld-prefix = \ else run-via-rtld-prefix = endif +# $(run-program-env) is the default environment variable settings to +# use when running a program built with the newly built library. +run-program-env = GCONV_PATH=$(common-objpfx)iconvdata \ + LOCPATH=$(common-objpfx)localedata LC_ALL=C # $(run-program-prefix) is a command that, when prepended to the name # of a program built with the newly built library, produces a command # that, executed on the build system on which "make" is run, runs that -# program. -run-program-prefix = $(test-wrapper) $(run-via-rtld-prefix) +# program. $(run-program-prefix-before-env) and +# $(run-program-prefix-after-env) are similar, but separate parts +# before and after a list of environment variables. +run-program-prefix-before-env = $(test-wrapper-env) +run-program-prefix-after-env = $(run-via-rtld-prefix) +run-program-prefix = $(run-program-prefix-before-env) $(run-program-env) \ + $(run-program-prefix-after-env) # $(built-program-cmd) is a command that, executed on the build system # on which "make" is run, runs the newly built program that is the # second dependency of the makefile target in which -# $(built-program-cmd) is used. -built-program-cmd = $(test-wrapper) \ - $(run-via-rtld-prefix) $(built-program-file) +# $(built-program-cmd) is used. $(built-program-cmd-before-env) and +# $(built-program-cmd-after-env) are similar, before and after a list +# of environment variables. +built-program-cmd-before-env = $(test-wrapper-env) +built-program-cmd-after-env = $(run-via-rtld-prefix) $(built-program-file) +built-program-cmd = $(built-program-cmd-before-env) $(run-program-env) \ + $(built-program-cmd-after-env) # $(host-built-program-cmd) is a command that, executed on the host # for which the library is built, runs the newly built program that is # the second dependency of the makefile target in which @@ -655,12 +672,16 @@ endif # $(test-program-prefix) is a command that, when prepended to the name # of a test program built with the newly built library, produces a command # that, executed on the build system on which "make" is run, runs that -# test program. +# test program. $(test-program-prefix-before-env) and +# $(test-program-prefix-after-env) are similar, before and after a +# list of environment variables. # $(test-program-cmd) is a command that, executed on the build system # on which "make" is run, runs the newly built test program that is the # second dependency of the makefile target in which -# $(test-program-cmd) is used. +# $(test-program-cmd) is used. $(test-program-cmd-before-env) and +# $(test-program-cmd-after-env) are similar, before and after a list +# of environment variables. # $(host-test-program-cmd) is a command that, executed on the host # for which the library is built, runs the newly built test program that @@ -669,12 +690,22 @@ endif ifeq (yes,$(build-hardcoded-path-in-tests)) test-via-rtld-prefix = -test-program-prefix = $(test-wrapper) -test-program-cmd = $(test-wrapper) $(built-program-file) +test-program-prefix-before-env = $(test-wrapper-env) +test-program-prefix-after-env = +test-program-prefix = $(test-program-prefix-before-env) $(run-program-env) \ + $(test-program-prefix-after-env) +test-program-cmd-before-env = $(test-wrapper-env) +test-program-cmd-after-env = $(built-program-file) +test-program-cmd = $(test-program-cmd-before-env) $(run-program-env) \ + $(test-program-cmd-after-env) host-test-program-cmd = $(built-program-file) else test-via-rtld-prefix = $(run-via-rtld-prefix) +test-program-prefix-before-env = $(run-program-prefix-before-env) +test-program-prefix-after-env = $(run-program-prefix-after-env) test-program-prefix = $(run-program-prefix) +test-program-cmd-before-env = $(built-program-cmd-before-env) +test-program-cmd-after-env = $(built-program-cmd-after-env) test-program-cmd = $(built-program-cmd) host-test-program-cmd = $(host-built-program-cmd) endif @@ -685,6 +716,10 @@ ifeq ($(all-warnings),yes) else +gccwarn := -Wall -Wwrite-strings -Winline endif ++gccwarn += -Wundef +ifeq ($(enable-werror),yes) ++gccwarn += -Werror -Wno-error=undef +endif +gccwarn-c = -Wstrict-prototypes # We do not depend on the address of constants in different files to be @@ -781,12 +816,37 @@ endif # $(+cflags) == "" # of many little headers in the include directory. libio-include = -I$(..)libio +# List of non-library modules that we build. +built-modules = iconvprogs iconvdata ldconfig lddlibc4 libmemusage \ + libSegFault libpcprofile librpcsvc locale-programs \ + memusagestat nonlib nscd extramodules libnldbl + +# We don't include libc-modules.h when these targets are being built. These +# targets don't (and will likely never need to) use the IS_IN facility. In +# fact, shlib-versions should not use it because that will create a circular +# dependency as libc-modules.h is generated from shlib-versions. +skip-module-cppflags = shlib-versions.v.i Versions.v.i + +in-module = $(subst -,_,$(firstword $(libof-$(basename $(@F))) \ + $(libof-$( $@T + $(AWK) -f $^ > $@T mv -f $@T $@ $(common-objpfx)soversions.mk: $(common-objpfx)soversions.i $(..)Makeconfig (while read which lib number setname; do \ eval seen_$$which=1; \ - test x"$$which" != xABI || echo abi-name = "$$lib"; \ test x"$$which" = xDEFAULT || continue; \ case $$number in \ [0-9]*) echo "$$lib.so-version=.$$number"; \ echo "all-sonames+=$$lib=$$lib.so\$$($$lib.so-version)";;\ - *) echo "$$lib.so-version=\$$(if \$$(abi-$(default-abi)-$$lib-soname),\$$(abi-$(default-abi)-$$lib-soname),$$number)"; \ + *) echo "$$lib.so-version=$$number"; \ echo "all-sonames+=$$lib=\$$($$lib.so-version)";;\ esac; \ done; \ @@ -956,44 +1008,22 @@ endif postclean-generated += soversions.mk soversions.i \ shlib-versions.v shlib-versions.v.i -# Generate the header containing the names of all shared libraries. -# We use a stamp file to avoid unnecessary recompilations. -before-compile += $(common-objpfx)gnu/lib-names.h +before-compile += $(common-objpfx)libc-modules.h ifeq ($(soversions.mk-done),t) -$(common-objpfx)gnu/lib-names.h: $(common-objpfx)gnu/lib-names.stmp; @: -$(common-objpfx)gnu/lib-names.stmp: $(..)scripts/lib-names.awk \ - $(common-objpfx)soversions.i - $(make-target-directory) - { \ - echo '/* This file is automatically generated.';\ - echo ' It defines macros to allow user program to find the shared'; \ - echo ' library files which come as part of GNU libc. */'; \ - echo '#ifndef __GNU_LIB_NAMES_H'; \ - echo '#define __GNU_LIB_NAMES_H 1'; \ - echo ''; \ - $(if $(abi-includes), \ - $(foreach h,$(abi-includes), echo '#include <$(h)>';) \ - echo '';) \ - $(if $(abi-variants), \ - $(foreach v,$(abi-variants),\ - $(if $(abi-$(v)-condition),\ - echo '#if $(abi-$(v)-condition)'; \ - ($(foreach s,$(all-sonames), \ - $(if $(abi-$(v)-$(firstword $(subst =, ,$(s)))-soname),\ - echo $(firstword $(subst =, ,$(s)))=$(abi-$(v)-$(firstword $(subst =, ,$(s)))-soname);, \ - echo $(s);))) \ - | LC_ALL=C $(AWK) -v multi=1 -f $(firstword $^) | LC_ALL=C sort;) \ - $(if $(abi-$(v)-condition),echo '#endif';)), \ - ($(foreach s,$(all-sonames), echo $(s);)) \ - | LC_ALL=C $(AWK) -f $(firstword $^) | LC_ALL=C sort;) \ - echo ''; \ - echo '#endif /* gnu/lib-names.h */'; \ - } > ${@:stmp=T} +# Generate a header with macro definitions for use with the IS_IN macro. +# These are the possible values for the MODULE_NAME macro defined when building +# sources, to identify which module the translation unit is going to be built +# into. +$(common-objpfx)libc-modules.h: $(common-objpfx)libc-modules.stmp; @: +$(common-objpfx)libc-modules.stmp: $(..)scripts/gen-libc-modules.awk \ + $(common-objpfx)soversions.i + $(AWK) -v buildlist="$(subst -,_,$(built-modules))" -f $^ > ${@:stmp=T} $(move-if-change) ${@:stmp=T} ${@:stmp=h} touch $@ + endif -common-generated += gnu/lib-names.h gnu/lib-names.stmp +common-generated += libc-modules.h libc-modules.stmp # The name under which the run-time dynamic linker is installed. # We are currently going for the convention that `/lib/ld.so.1' @@ -1041,7 +1071,7 @@ ifndef avoid-generated # existing directory not in all-subdirs, then sysd-sorted needs to # be regenerated, so it depends on existing $(sorted-subdirs:=/Depend) files. all-Depend-files := $(wildcard $(sort \ - $(foreach dir,$(all-subdirs),\ + $(foreach dir,$(all-subdirs),\ $(firstword $($(dir)-srcdir) \ $(..)$(dir))/Depend) \ $(sorted-subdirs:=/Depend))) @@ -1080,6 +1110,20 @@ defines += -D_LIBC_REENTRANT libio-mtsafe = -D_IO_MTSAFE_IO endif +# The name to give to a test in test results summaries. +test-name = $(strip $(patsubst %.out, %, $(patsubst $(common-objpfx)%, %, $@))) + +# Likewise, in XFAIL variable names. +test-xfail-name = $(strip $(patsubst %.out, %, $(patsubst $(objpfx)%, %, $@))) + +# Command to output a test status line (such as PASS: test-name). If +# test-xfail-$(test-xfail-name) has a nonempty value, the status will be +# XPASS or XFAIL rather than PASS or FAIL. +evaluate-test = $(..)scripts/evaluate-test.sh $(test-name) $$? \ + $(if $(test-xfail-$(test-xfail-name)),true,false) \ + $(if $(stop-on-test-failure),true,false) \ + > $(common-objpfx)$(test-name).test-result + endif # Makeconfig not yet included # Local Variables: