OSDN Git Service

test: compile test{,_glibc} adjacent
[uclinux-h8/uClibc.git] / Rules.mak
index ec8f544..04a69af 100644 (file)
--- a/Rules.mak
+++ b/Rules.mak
@@ -74,9 +74,16 @@ BUILD_CFLAGS = -Os -Wall
 qstrip = $(strip $(subst ",,$(1)))
 #"))
 
+ifndef KCONFIG_CONFIG
+KCONFIG_CONFIG := $(top_builddir).config
+endif
+export KCONFIG_CONFIG
+
 # Pull in the user's uClibc configuration
 ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
--include $(top_builddir).config
+# Prevent make from searching
+__ABS_KCONFIG_CONFIG := $(abspath $(KCONFIG_CONFIG))
+-include $(__ABS_KCONFIG_CONFIG)
 endif
 TARGET_ARCH:=$(call qstrip,$(TARGET_ARCH))
 ifeq ($(TARGET_ARCH),)
@@ -93,19 +100,20 @@ endif
 export ARCH
 
 # Make certain these contain a final "/", but no "//"s.
-TARGET_SUBARCH:=$(call qstrip,$(TARGET_SUBARCH))
-RUNTIME_PREFIX:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(RUNTIME_PREFIX)))))
-DEVEL_PREFIX:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(DEVEL_PREFIX)))))
-MULTILIB_DIR:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(MULTILIB_DIR)))))
-KERNEL_HEADERS:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(KERNEL_HEADERS)))))
+scrub_path = $(strip $(subst //,/, $(subst ,/, $(call qstrip,$(1)))))
+TARGET_SUBARCH := $(call qstrip,$(TARGET_SUBARCH))
+RUNTIME_PREFIX := $(call scrub_path,$(RUNTIME_PREFIX))
+DEVEL_PREFIX   := $(call scrub_path,$(DEVEL_PREFIX))
+MULTILIB_DIR   := $(call scrub_path,$(MULTILIB_DIR))
+KERNEL_HEADERS := $(call scrub_path,$(KERNEL_HEADERS))
 export RUNTIME_PREFIX DEVEL_PREFIX KERNEL_HEADERS MULTILIB_DIR
 
 
 # Now config hard core
 MAJOR_VERSION := 0
 MINOR_VERSION := 9
-SUBLEVEL      := 33
-EXTRAVERSION  :=-rc1-git
+SUBLEVEL      := 34
+EXTRAVERSION  :=-git
 VERSION       := $(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL)
 ABI_VERSION   := $(MAJOR_VERSION)
 ifneq ($(EXTRAVERSION),)
@@ -198,7 +206,7 @@ endef
 define check-as-var
 $(call check-tool-var,check_as,ASFLAG,$(1))
 _v = CFLAG_-Wa$(1)
-export $(_v) = $$(if $$(ASFLAG_$(1)),-Wa$$(comma)$$(ASFLAG_$(1)))
+export $$(_v) = $$(if $$(ASFLAG_$(1)),-Wa$$(comma)$$(ASFLAG_$(1)))
 endef
 # Usage: check-ld-var,<flag>
 # Check the linker to see if it supports <flag>.  Export the
@@ -397,6 +405,12 @@ ifeq ($(TARGET_ARCH),arm)
        CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb
 endif
 
+ifeq ($(TARGET_ARCH),metag)
+        SYMBOL_PREFIX=_
+        CPU_CFLAGS-$(CONFIG_META_1_2)+=
+        CPU_CFLAGS-$(CONFIG_META_2_1)+=-Wa,-mcpu=metac21
+endif
+
 ifeq ($(TARGET_ARCH),mips)
        OPTIMIZATION+=-mno-split-addresses
        CPU_CFLAGS-$(CONFIG_MIPS_ISA_1)+=-mips1
@@ -575,10 +589,17 @@ link.asneeded = $(if $(findstring yy,$(CC_FLAG_ASNEEDED)$(CC_FLAG_NO_ASNEEDED)),
 # Check for AS_NEEDED support in linker script (binutils>=2.16.1 has it)
 ifndef ASNEEDED
 export ASNEEDED:=$(shell $(LD) --help 2>/dev/null | grep -q -- --as-needed && echo "AS_NEEDED ( $(UCLIBC_LDSO) )" || echo "$(UCLIBC_LDSO)")
-ifeq ($(UCLIBC_HAS_BACKTRACE),y)
+
 # Only used in installed libc.so linker script
-UBACKTRACE_FULL_NAME := $(RUNTIME_PREFIX)lib/$(UBACKTRACE_DSO)
-export UBACKTRACE_ASNEEDED:=$(shell $(LD) --help 2>/dev/null | grep -q -- --as-needed && echo "AS_NEEDED ( $(UBACKTRACE_FULL_NAME) )" || echo "$(UBACKTRACE_FULL_NAME)")
+ifeq ($(UCLIBC_HAS_BACKTRACE),y)
+ifeq ($(HARDWIRED_ABSPATH),y)
+UBACKTRACE_FULL_NAME := $(subst //,/,$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(UBACKTRACE_DSO))
+else
+UBACKTRACE_FULL_NAME := $(UBACKTRACE_DSO)
+endif
+export UBACKTRACE_ASNEEDED:=$(shell $(LD) --help 2>/dev/null | grep -q -- --as-needed && \
+       echo "GROUP ( AS_NEEDED ( $(UBACKTRACE_FULL_NAME) ) )" || \
+       echo "GROUP ( $(UBACKTRACE_FULL_NAME) )")
 else
 export UBACKTRACE_ASNEEDED:=""
 endif
@@ -626,11 +647,16 @@ endif
 $(eval $(call check-gcc-var,-nostdlib))
 
 # Collect all CFLAGS components
-CFLAGS := -include $(top_srcdir)include/libc-symbols.h \
-       $(XWARNINGS) $(CPU_CFLAGS) $(SSP_CFLAGS) \
-       -nostdinc -I$(top_builddir)include -I$(top_srcdir)include -I. \
+CFLAGS := $(XWARNINGS) $(CPU_CFLAGS) $(SSP_CFLAGS) \
+       -nostdinc -I$(top_builddir)include \
+       -I$(top_srcdir)include -include libc-symbols.h \
+       -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH) \
        -I$(top_srcdir)libc/sysdeps/linux \
-       -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)
+       -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
+       -I$(top_srcdir)ldso/include -I.
+ifneq ($(strip $(UCLIBC_EXTRA_CFLAGS)),"")
+CFLAGS += $(call qstrip,$(UCLIBC_EXTRA_CFLAGS))
+endif
 
 # We need this to be checked within libc-symbols.h
 ifneq ($(HAVE_SHARED),y)
@@ -720,7 +746,7 @@ PTDIR := libpthread/$(PTNAME)
 ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
 PTINC:= -I$(top_builddir)$(PTDIR)                                      \
        -I$(top_srcdir)$(PTDIR)                                         \
-       $(if $(TARGET_ARCH),-I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/$(TARGET_SUBARCH)) \
+       $(if $(TARGET_SUBARCH),-I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/$(TARGET_SUBARCH)) \
        -I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH)  \
        -I$(top_builddir)$(PTDIR)/sysdeps/$(TARGET_ARCH)                \
        -I$(top_srcdir)$(PTDIR)/sysdeps/$(TARGET_ARCH)                  \
@@ -728,9 +754,7 @@ PTINC:= -I$(top_builddir)$(PTDIR)                                   \
        -I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux                 \
        -I$(top_srcdir)$(PTDIR)/sysdeps/pthread                         \
        -I$(top_srcdir)$(PTDIR)/sysdeps/pthread/bits                    \
-       -I$(top_srcdir)$(PTDIR)/sysdeps/generic                         \
-       -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH)                         \
-       -I$(top_srcdir)ldso/include
+       -I$(top_srcdir)$(PTDIR)/sysdeps/generic
 #
 # Test for TLS if NPTL support was selected.
 #
@@ -763,13 +787,14 @@ else
        PTINC  :=
 endif
 CFLAGS += -I$(top_srcdir)libc/sysdeps/linux/common
-CFLAGS += -I$(KERNEL_HEADERS)
 
 #CFLAGS += -iwithprefix include-fixed -iwithprefix include
-$(eval $(call cache-output-var,CC_IPREFIX,$(CC) --print-file-name=include))
+$(eval $(call cache-output-var,CC_IPREFIX,$(CC) -print-file-name=include))
 CC_INC := -isystem $(dir $(CC_IPREFIX))include-fixed -isystem $(CC_IPREFIX)
 CFLAGS += $(CC_INC)
 
+CFLAGS += -I$(KERNEL_HEADERS)
+
 ifneq ($(DOASSERTS),y)
 CFLAGS+=-DNDEBUG
 endif
@@ -786,6 +811,10 @@ ASFLAGS = $(ASFLAG_--noexecstack)
 
 LIBGCC_CFLAGS ?= $(CFLAGS) $(CPU_CFLAGS-y)
 $(eval $(call cache-output-var,LIBGCC,$(CC) $(LIBGCC_CFLAGS) -print-libgcc-file-name))
+$(eval $(call cache-output-var,LIBGCC_EH,$(CC) $(LIBGCC_CFLAGS) -print-file-name=libgcc_eh.a))
+# with -O0 we (e.g. lockf) might end up with references to
+# _Unwind_Resume, so pull in gcc_eh in this case..
+LIBGCC += $(if $(DODEBUG),$(LIBGCC_EH))
 LIBGCC_DIR:=$(dir $(LIBGCC))
 
 # moved from libpthread/linuxthreads
@@ -795,3 +824,5 @@ SHARED_END_FILES:=$(LIBGCC_DIR)crtendS.o $(top_builddir)lib/crtn.o
 endif
 
 LOCAL_INSTALL_PATH := install_dir
+
+PTHREAD_GENERATE_MANGLE ?= -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*\$$/\#define \1 \2/p"