diff options
Diffstat (limited to 'Rules.mak')
-rw-r--r-- | Rules.mak | 51 |
1 files changed, 30 insertions, 21 deletions
@@ -1,7 +1,7 @@ # Rules.mak for uClibc-ng # # Copyright (C) 2000-2008 Erik Andersen <andersen@uclibc.org> -# Copyright (C) 2015-2018 Waldemar Brodkorb <wbx@uclibc-ng.org> +# Copyright (C) 2015-2024 Waldemar Brodkorb <wbx@uclibc-ng.org> # # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. # @@ -128,7 +128,7 @@ export RUNTIME_PREFIX DEVEL_PREFIX KERNEL_HEADERS MULTILIB_DIR # Now config hard core MAJOR_VERSION := 1 MINOR_VERSION := 0 -SUBLEVEL := 31 +SUBLEVEL := 48 EXTRAVERSION := VERSION := $(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL) ABI_VERSION := $(MAJOR_VERSION) @@ -142,17 +142,8 @@ export MAJOR_VERSION MINOR_VERSION SUBLEVEL VERSION ABI_VERSION LC_ALL LIBC := libc SHARED_LIBNAME := $(LIBC).so.$(ABI_VERSION) -UCLIBC_LDSO_NAME := ld-uClibc -ARCH_NATIVE_BIT := 32 -ifneq ($(findstring $(TARGET_ARCH) , hppa64 ia64 powerpc64 s390x sparc64 x86_64 ),) -UCLIBC_LDSO_NAME := ld64-uClibc -ARCH_NATIVE_BIT := 64 -else -ifeq ($(CONFIG_MIPS_N64_ABI),y) -UCLIBC_LDSO_NAME := ld64-uClibc -ARCH_NATIVE_BIT := 64 -endif -endif +UCLIBC_LDSO_NAME := $(call qstrip,$(TARGET_LDSO_NAME)) +ARCH_NATIVE_BIT := $(call qstrip,$(TARGET_ARCH_BITS)) UCLIBC_LDSO := $(UCLIBC_LDSO_NAME).so.$(ABI_VERSION) NONSHARED_LIBNAME := uclibc_nonshared.a @@ -176,6 +167,8 @@ endif ifneq ($(HAVE_SHARED),y) libc := +endif +ifneq ($(HAVE_LDSO),y) interp := ldso := endif @@ -189,11 +182,13 @@ endif # A nifty macro to make testing gcc features easier check_gcc=$(shell \ - if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; \ - then echo "$(1)"; else echo "$(2)"; fi) + tf="/tmp/cgccucl$$$$.o"; \ + if $(CC) $(1) -S -o $$tf -xc /dev/null > /dev/null 2>&1; \ + then echo "$(1)"; else echo "$(2)"; fi; rm -f $$tf ) check_as=$(shell \ - if $(CC) -Wa,$(1) -Wa,-Z -c -o /dev/null -xassembler /dev/null > /dev/null 2>&1; \ - then echo "-Wa,$(1)"; fi) + tf="/tmp/casucl$$$$.o"; \ + if $(CC) -Wa,$(1) -Wa,-Z -c -o $$tf -xassembler /dev/null > /dev/null 2>&1; \ + then echo "-Wa,$(1)"; fi; rm -f $$tf ) check_ld=$(shell \ tf="/tmp/clducl$$$$.c"; echo "int _start(){return 0;}int main(){return 0;}" >$$tf; \ if $(CC) $(LDFLAG-fuse-ld) $(CFLAG_-Wl--no-warn-mismatch) -Wl,$(1) $(CFLAG_-nostdlib) -o /dev/null $$tf > /dev/null 2>&1; \ @@ -286,7 +281,7 @@ OPTIMIZATION += $(CFLAG_-fstrict-aliasing) # Why -funsigned-char: I hunted a bug related to incorrect # sign extension of 'char' type for 10 hours straight. Not fun. -CPU_CFLAGS-y := -funsigned-char -fno-builtin +CPU_CFLAGS-y := -funsigned-char -fno-builtin -fcommon $(eval $(call check-gcc-var,-fno-asm)) CPU_CFLAGS-y += $(CFLAG_-fno-asm) @@ -303,6 +298,7 @@ ifneq ($(TARGET_ARCH),c6x) ifneq ($(TARGET_ARCH),h8300) ifneq ($(TARGET_ARCH),arc) ifneq ($(TARGET_ARCH),aarch64) +ifneq ($(TARGET_ARCH),riscv32) CPU_CFLAGS-y += -msoft-float endif endif @@ -314,6 +310,7 @@ endif endif endif endif +endif ifeq ($(TARGET_ARCH),aarch64) CPU_CFLAGS-y += -ftls-model=initial-exec @@ -339,8 +336,6 @@ $(eval $(call check-gcc-var,-ffunction-sections)) # Some nice CPU specific optimizations ifeq ($(TARGET_ARCH),i386) -$(eval $(call check-gcc-var,-fomit-frame-pointer)) - OPTIMIZATION += $(CFLAG_-fomit-frame-pointer) ifeq ($(CONFIG_386)$(CONFIG_486)$(CONFIG_586),y) # TODO: Change this to a gcc version check. This bug @@ -463,6 +458,11 @@ ifeq ($(TARGET_ARCH),csky) CPU_CFLAGS-$(ARCH_BIG_ENDIAN) += -mbig-endian endif +ifeq ($(TARGET_ARCH),kvx) + CPU_CFLAGS-y += -march=$(call qstrip,$(TARGET_MARCH)) + CPU_LDFLAGS-y += -march=$(call qstrip,$(TARGET_MARCH)) +endif + ifeq ($(TARGET_ARCH),m68k) # -fPIC is only supported for 68020 and above. It is not supported # for 68000, 68010, or Coldfire. @@ -477,9 +477,10 @@ ifeq ($(TARGET_ARCH),powerpc) PICFLAG:=-fpic PIEFLAG_NAME:=-fpie PPC_HAS_REL16:=$(shell printf "\t.text\n\taddis 11,30,_GLOBAL_OFFSET_TABLE_-.@ha\n" | $(CC) -c -x assembler -o /dev/null - 2> /dev/null && echo -n y || echo -n n) + PPC_HAS_SECUREPLT:=$(shell $(CC) --verbose 2>&1 | grep -- --enable-secureplt > /dev/null && echo -n y || echo -n n) + CPU_CFLAGS-$(PPC_HAS_SECUREPLT) += -DPPC_HAS_SECUREPLT CPU_CFLAGS-$(PPC_HAS_REL16)+= -DHAVE_ASM_PPC_REL16 CPU_CFLAGS-$(CONFIG_E500) += "-D__NO_MATH_INLINES" - endif ifeq ($(TARGET_ARCH),bfin) @@ -603,6 +604,7 @@ 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_builddir)libc/sysdeps/linux/$(TARGET_ARCH) \ -I$(top_srcdir)libc/sysdeps/linux \ -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \ -I$(top_srcdir)ldso/include -I. @@ -659,6 +661,9 @@ endif ifneq ($(strip $(UCLIBC_EXTRA_CFLAGS)),"") CFLAGS += $(call qstrip,$(UCLIBC_EXTRA_CFLAGS)) endif +ifeq ($(TARGET_ARCH),i386) +CFLAGS += -fno-omit-frame-pointer +endif ifneq ($(strip $(UCLIBC_EXTRA_LDFLAGS)),"") LDFLAGS += $(call qstrip,$(UCLIBC_EXTRA_LDFLAGS)) endif @@ -667,6 +672,10 @@ ifeq ($(UCLIBC_HAS_STDIO_FUTEXES),y) CFLAGS += -D__USE_STDIO_FUTEXES__ endif +ifeq ($(UCLIBC_USE_TIME64),y) +CFLAGS += -D__UCLIBC_HAVE_STATX__ +endif + ifeq ($(UCLIBC_HAS_THREADS),y) ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y) PTNAME := nptl |