mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-18 16:08:53 +09:00
![Alexey Brodkin](/assets/img/avatar_default.png)
By default GCC puts global non-initialized variables in COMMON section. And we used to ignore existence of COMMON section in our linker scripts though smart LD silently appended it right after .bss. And the problem here is variables from COMMON section even though require zeroing in run-time were not zeroed as they were placed right after __bss_end symbol. It was a pure luck we never faced serious problem due to this, but now it is fixed. Now as for some other architectures we'll just force GCC to put those global variables in normal .bss section. This solution is much nicer than adding COMMON section to each and every linker script. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
53 lines
1.0 KiB
Makefile
53 lines
1.0 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0+
|
|
#
|
|
# Copyright (C) 2013-2014 Synopsys, Inc. All rights reserved.
|
|
|
|
ifndef CONFIG_CPU_BIG_ENDIAN
|
|
CONFIG_SYS_LITTLE_ENDIAN = 1
|
|
else
|
|
CONFIG_SYS_BIG_ENDIAN = 1
|
|
endif
|
|
|
|
ifdef CONFIG_SYS_LITTLE_ENDIAN
|
|
PLATFORM_LDFLAGS += -EL
|
|
PLATFORM_CPPFLAGS += -mlittle-endian
|
|
endif
|
|
|
|
ifdef CONFIG_SYS_BIG_ENDIAN
|
|
PLATFORM_LDFLAGS += -EB
|
|
PLATFORM_CPPFLAGS += -mbig-endian
|
|
endif
|
|
|
|
ifdef CONFIG_ARC_MMU_VER
|
|
CONFIG_MMU = 1
|
|
endif
|
|
|
|
ifdef CONFIG_CPU_ARC750D
|
|
PLATFORM_CPPFLAGS += -mcpu=arc700
|
|
endif
|
|
|
|
ifdef CONFIG_CPU_ARC770D
|
|
PLATFORM_CPPFLAGS += -mcpu=arc700 -mlock -mswape
|
|
endif
|
|
|
|
ifdef CONFIG_CPU_ARCEM6
|
|
PLATFORM_CPPFLAGS += -mcpu=arcem
|
|
endif
|
|
|
|
ifdef CONFIG_CPU_ARCHS34
|
|
PLATFORM_CPPFLAGS += -mcpu=archs
|
|
endif
|
|
|
|
ifdef CONFIG_CPU_ARCHS38
|
|
PLATFORM_CPPFLAGS += -mcpu=archs
|
|
endif
|
|
|
|
PLATFORM_CPPFLAGS += -ffixed-r25 -D__ARC__ -gdwarf-2 -mno-sdata
|
|
PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections -fno-common
|
|
|
|
# Needed for relocation
|
|
LDFLAGS_FINAL += -pie --gc-sections
|
|
|
|
# Load address for standalone apps
|
|
CONFIG_STANDALONE_LOAD_ADDR ?= 0x82000000
|