diff options
author | Joakim Tjernlund <joakim.tjernlund@transmode.se> | 2004-10-14 09:53:15 +0000 |
---|---|---|
committer | Joakim Tjernlund <joakim.tjernlund@transmode.se> | 2004-10-14 09:53:15 +0000 |
commit | 6bc6a6f5d779643263f83d9f348c3dd9d788bae9 (patch) | |
tree | 1e7a9a73b57d455c742e947178447319bf1ff98a /Rules.mak | |
parent | f8b23fd8da1d342dfd4f5e67377d7c0f08eb3603 (diff) |
Peter Mazinger writes:
The attached patch is an updated version of an earlier sent patch
It solves the problem that the target utils (ldconfig/ldd/iconv, readelf
is not handled, but can be easily added) are not built w/ the newly
created [S]crt[01].o files.
Diffstat (limited to 'Rules.mak')
-rw-r--r-- | Rules.mak | 52 |
1 files changed, 52 insertions, 0 deletions
@@ -265,6 +265,58 @@ LIBGCC_CFLAGS ?= $(CFLAGS) $(CPU_CFLAGS-y) LIBGCC:=$(shell $(CC) $(LIBGCC_CFLAGS) -print-libgcc-file-name) LIBGCC_DIR:=$(dir $(LIBGCC)) +# +# common part for libs and binaries +# +# normally used start and end files +N_START_FILE = $(LIBGCC_DIR)crtbegin.o +N_END_FILE = $(LIBGCC_DIR)crtend.o + +# shared/pie start and end files +S_START_FILE = $(LIBGCC_DIR)crtbeginS.o +S_END_FILE = $(LIBGCC_DIR)crtendS.o + +ifeq ($(DOPIC),y) + START_FILE = $(S_START_FILE) + END_FILE = $(S_END_FILE) +else + START_FILE = $(N_START_FILE) + END_FILE = $(N_END_FILE) +endif + +START_FILES = $(TOPDIR)lib/crti.o $(START_FILE) +END_FILES = $(END_FILE) $(TOPDIR)lib/crtn.o + +# +# binaries specific part +# +ifeq ($(UCLIBC_CTOR_DTOR),y) + CRT_FILE=$(TOPDIR)lib/crt1.o +else + CRT_FILE=$(TOPDIR)lib/crt0.o +endif + +# PIE +S_CRT_FILE=$(TOPDIR)lib/Scrt1.o + +# arm and ia64 do not use crtbeginT.o for static linking +# please add condition for ia64 when it becomes supported +ifeq ($(TARGET_arm),y) + STATIC_BEGIN_FILE=$(LIBGCC_DIR)crtbegin.o +else + STATIC_BEGIN_FILE=$(LIBGCC_DIR)crtbeginT.o +endif + +ifeq ($(UCLIBC_PIE_SUPPORT),y) + BIN_START_FILES = $(S_CRT_FILE) $(TOPDIR)lib/crti.o $(S_START_FILE) +else + BIN_START_FILES = $(CRT_FILE) $(TOPDIR)lib/crti.o $(START_FILE) +endif + +# static start and end files +STATIC_BIN_START_FILES = $(CRT_FILE) $(TOPDIR)lib/crti.o $(STATIC_BEGIN_FILE) +STATIC_BIN_END_FILES = $(N_END_FILE) $(TOPDIR)lib/crtn.o + ######################################## # # uClinux shared lib support |