Need to add CRT0 to every Makefile in apps/examples/tests
This commit is contained in:
parent
a03bd2f1e7
commit
95679676a1
@ -66,17 +66,17 @@ endif
|
|||||||
BIN = errno
|
BIN = errno
|
||||||
|
|
||||||
SRCS = $(BIN).c
|
SRCS = $(BIN).c
|
||||||
OBJS = $(SRCS:.c=.o)
|
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||||
|
|
||||||
all: $(BIN)
|
all: $(BIN)
|
||||||
|
|
||||||
$(OBJS): %.o: %.c
|
$(OBJS): %$(OBJEXT): %.c
|
||||||
@echo "CC: $<"
|
@echo "CC: $<"
|
||||||
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
||||||
|
|
||||||
$(BIN): $(OBJS)
|
$(BIN): $(OBJS)
|
||||||
@echo "LD: $<"
|
@echo "LD: $<"
|
||||||
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $^ $(LDLIBS)
|
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $(ARCHCRT0OBJ) $^ $(LDLIBS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(call DELFILE, $(BIN))
|
$(call DELFILE, $(BIN))
|
||||||
@ -85,4 +85,3 @@ clean:
|
|||||||
install:
|
install:
|
||||||
$(Q) mkdir -p $(ROMFS_DIR)
|
$(Q) mkdir -p $(ROMFS_DIR)
|
||||||
$(Q) install $(BIN) $(ROMFS_DIR)/$(BIN)
|
$(Q) install $(BIN) $(ROMFS_DIR)/$(BIN)
|
||||||
|
|
||||||
|
@ -66,17 +66,17 @@ endif
|
|||||||
BIN = hello
|
BIN = hello
|
||||||
|
|
||||||
SRCS = $(BIN).c
|
SRCS = $(BIN).c
|
||||||
OBJS = $(SRCS:.c=.o)
|
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||||
|
|
||||||
all: $(BIN)
|
all: $(BIN)
|
||||||
|
|
||||||
$(OBJS): %.o: %.c
|
$(OBJS): %$(OBJEXT): %.c
|
||||||
@echo "CC: $<"
|
@echo "CC: $<"
|
||||||
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
||||||
|
|
||||||
$(BIN): $(OBJS)
|
$(BIN): $(OBJS)
|
||||||
@echo "LD: $<"
|
@echo "LD: $<"
|
||||||
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $^ $(LDLIBS)
|
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $(ARCHCRT0OBJ) $^ $(LDLIBS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(call DELFILE, $(BIN))
|
$(call DELFILE, $(BIN))
|
||||||
|
@ -72,18 +72,18 @@ endif
|
|||||||
ALL_BIN = $(BIN1) $(BIN2) $(BIN3) $(BIN4)
|
ALL_BIN = $(BIN1) $(BIN2) $(BIN3) $(BIN4)
|
||||||
|
|
||||||
SRCS1 = $(BIN1).c
|
SRCS1 = $(BIN1).c
|
||||||
OBJS1 = $(SRCS1:.c=.o)
|
OBJS1 = $(SRCS1:.c=$(OBJEXT))
|
||||||
|
|
||||||
SRCS2 = $(BIN2).c
|
SRCS2 = $(BIN2).c
|
||||||
OBJS2 = $(SRCS2:.c=.o)
|
OBJS2 = $(SRCS2:.c=$(OBJEXT))
|
||||||
|
|
||||||
ifeq ($(CONFIG_BINFMT_CONSTRUCTORS),y)
|
ifeq ($(CONFIG_BINFMT_CONSTRUCTORS),y)
|
||||||
SRCS3 = $(BIN3).c
|
SRCS3 = $(BIN3).c
|
||||||
OBJS3 = $(SRCS3:.c=.o)
|
OBJS3 = $(SRCS3:.c=$(OBJEXT))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#SRCS4 = $(BIN4).c
|
#SRCS4 = $(BIN4).c
|
||||||
#OBJS4 = $(SRCS4:.c=.o)
|
#OBJS4 = $(SRCS4:.c=$(OBJEXT))
|
||||||
|
|
||||||
SRCS = $(SRCS1) $(SRCS2) $(SRCS3) $(SRCS4)
|
SRCS = $(SRCS1) $(SRCS2) $(SRCS3) $(SRCS4)
|
||||||
OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4)
|
OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4)
|
||||||
@ -93,7 +93,7 @@ LDLIBSTDC_STUBS_LIB = $(LDLIBSTDC_STUBS_DIR)/liblibxx.a
|
|||||||
|
|
||||||
all: $(BIN1) $(BIN2) $(BIN3) $(BIN4)
|
all: $(BIN1) $(BIN2) $(BIN3) $(BIN4)
|
||||||
|
|
||||||
$(OBJS): %.o: %.cpp
|
$(OBJS): %$(OBJEXT): %.cpp
|
||||||
@echo "CC: $<"
|
@echo "CC: $<"
|
||||||
$(Q) $(CXX) -c $(CXXELFFLAGS) $< -o $@
|
$(Q) $(CXX) -c $(CXXELFFLAGS) $< -o $@
|
||||||
|
|
||||||
@ -110,18 +110,18 @@ $(LDLIBSTDC_STUBS_LIB):
|
|||||||
|
|
||||||
$(BIN1): $(OBJS1)
|
$(BIN1): $(OBJS1)
|
||||||
@echo "LD: $<"
|
@echo "LD: $<"
|
||||||
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $^ $(LDLIBS)
|
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $(ARCHCRT0OBJ) $^ $(LDLIBS)
|
||||||
|
|
||||||
$(BIN2): $(OBJS2)
|
$(BIN2): $(OBJS2)
|
||||||
@echo "LD: $<"
|
@echo "LD: $<"
|
||||||
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $^ $(LDLIBS)
|
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $(ARCHCRT0OBJ) $^ $(LDLIBS)
|
||||||
|
|
||||||
# BIN3 is equivalent to BIN2 except that is uses static initializers
|
# BIN3 is equivalent to BIN2 except that is uses static initializers
|
||||||
|
|
||||||
ifeq ($(CONFIG_BINFMT_CONSTRUCTORS),y)
|
ifeq ($(CONFIG_BINFMT_CONSTRUCTORS),y)
|
||||||
$(BIN3): $(OBJS3)
|
$(BIN3): $(OBJS3)
|
||||||
@echo "LD: $<"
|
@echo "LD: $<"
|
||||||
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $^ $(LDLIBS)
|
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $(ARCHCRT0OBJ) $^ $(LDLIBS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# BIN4 is similar to BIN3 except that it uses the streams code from libstdc++
|
# BIN4 is similar to BIN3 except that it uses the streams code from libstdc++
|
||||||
@ -130,7 +130,7 @@ endif
|
|||||||
#
|
#
|
||||||
#$(BIN4): $(OBJS4)
|
#$(BIN4): $(OBJS4)
|
||||||
# @echo "LD: $<"
|
# @echo "LD: $<"
|
||||||
# $(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $^ $(LDLIBS)
|
# $(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $(ARCHCRT0OBJ) $^ $(LDLIBS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(call DELFILE, $(BIN1))
|
$(call DELFILE, $(BIN1))
|
||||||
|
@ -66,17 +66,17 @@ endif
|
|||||||
BIN = longjmp
|
BIN = longjmp
|
||||||
|
|
||||||
SRCS = $(BIN).c
|
SRCS = $(BIN).c
|
||||||
OBJS = $(SRCS:.c=.o)
|
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||||
|
|
||||||
all: $(BIN)
|
all: $(BIN)
|
||||||
|
|
||||||
$(OBJS): %.o: %.c
|
$(OBJS): %$(OBJEXT): %.c
|
||||||
@echo "CC: $<"
|
@echo "CC: $<"
|
||||||
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
||||||
|
|
||||||
$(BIN): $(OBJS)
|
$(BIN): $(OBJS)
|
||||||
@echo "LD: $<"
|
@echo "LD: $<"
|
||||||
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $^ $(LDLIBS)
|
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $(ARCHCRT0OBJ) $^ $(LDLIBS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(call DELFILE, $(BIN))
|
$(call DELFILE, $(BIN))
|
||||||
|
@ -66,17 +66,17 @@ endif
|
|||||||
BIN = mutex
|
BIN = mutex
|
||||||
|
|
||||||
SRCS = $(BIN).c
|
SRCS = $(BIN).c
|
||||||
OBJS = $(SRCS:.c=.o)
|
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||||
|
|
||||||
all: $(BIN)
|
all: $(BIN)
|
||||||
|
|
||||||
$(OBJS): %.o: %.c
|
$(OBJS): %$(OBJEXT): %.c
|
||||||
@echo "CC: $<"
|
@echo "CC: $<"
|
||||||
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
||||||
|
|
||||||
$(BIN): $(OBJS)
|
$(BIN): $(OBJS)
|
||||||
@echo "LD: $<"
|
@echo "LD: $<"
|
||||||
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $^ $(LDLIBS)
|
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $(ARCHCRT0OBJ) $^ $(LDLIBS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(call DELFILE, $(BIN))
|
$(call DELFILE, $(BIN))
|
||||||
|
@ -66,17 +66,17 @@ endif
|
|||||||
BIN = pthread
|
BIN = pthread
|
||||||
|
|
||||||
SRCS = $(BIN).c
|
SRCS = $(BIN).c
|
||||||
OBJS = $(SRCS:.c=.o)
|
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||||
|
|
||||||
all: $(BIN)
|
all: $(BIN)
|
||||||
|
|
||||||
$(OBJS): %.o: %.c
|
$(OBJS): %$(OBJEXT): %.c
|
||||||
@echo "CC: $<"
|
@echo "CC: $<"
|
||||||
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
||||||
|
|
||||||
$(BIN): $(OBJS)
|
$(BIN): $(OBJS)
|
||||||
@echo "LD: $<"
|
@echo "LD: $<"
|
||||||
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $^ $(LDLIBS)
|
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $(ARCHCRT0OBJ) $^ $(LDLIBS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(call DELFILE, $(BIN))
|
$(call DELFILE, $(BIN))
|
||||||
|
@ -66,17 +66,17 @@ endif
|
|||||||
BIN = signal
|
BIN = signal
|
||||||
|
|
||||||
SRCS = $(BIN).c
|
SRCS = $(BIN).c
|
||||||
OBJS = $(SRCS:.c=.o)
|
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||||
|
|
||||||
all: $(BIN)
|
all: $(BIN)
|
||||||
|
|
||||||
$(OBJS): %.o: %.c
|
$(OBJS): %$(OBJEXT): %.c
|
||||||
@echo "CC: $<"
|
@echo "CC: $<"
|
||||||
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
||||||
|
|
||||||
$(BIN): $(OBJS)
|
$(BIN): $(OBJS)
|
||||||
@echo "LD: $<"
|
@echo "LD: $<"
|
||||||
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $^ $(LDLIBS)
|
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $(ARCHCRT0OBJ) $^ $(LDLIBS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(call DELFILE, $(BIN))
|
$(call DELFILE, $(BIN))
|
||||||
|
@ -67,17 +67,17 @@ endif
|
|||||||
|
|
||||||
BIN = struct
|
BIN = struct
|
||||||
SRCS = struct_main.c struct_dummy.c
|
SRCS = struct_main.c struct_dummy.c
|
||||||
OBJS = $(SRCS:.c=.o)
|
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||||
|
|
||||||
all: $(BIN)
|
all: $(BIN)
|
||||||
|
|
||||||
$(OBJS): %.o: %.c
|
$(OBJS): %$(OBJEXT): %.c
|
||||||
@echo "CC: $<"
|
@echo "CC: $<"
|
||||||
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
||||||
|
|
||||||
$(BIN): $(OBJS)
|
$(BIN): $(OBJS)
|
||||||
@echo "LD: $<"
|
@echo "LD: $<"
|
||||||
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $^ $(LDLIBS)
|
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $(ARCHCRT0OBJ) $^ $(LDLIBS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(call DELFILE, $(BIN))
|
$(call DELFILE, $(BIN))
|
||||||
|
@ -66,17 +66,17 @@ endif
|
|||||||
BIN = task
|
BIN = task
|
||||||
|
|
||||||
SRCS = $(BIN).c
|
SRCS = $(BIN).c
|
||||||
OBJS = $(SRCS:.c=.o)
|
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||||
|
|
||||||
all: $(BIN)
|
all: $(BIN)
|
||||||
|
|
||||||
$(OBJS): %.o: %.c
|
$(OBJS): %$(OBJEXT): %.c
|
||||||
@echo "CC: $<"
|
@echo "CC: $<"
|
||||||
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
$(Q) $(CC) -c $(CELFFLAGS) $< -o $@
|
||||||
|
|
||||||
$(BIN): $(OBJS)
|
$(BIN): $(OBJS)
|
||||||
@echo "LD: $<"
|
@echo "LD: $<"
|
||||||
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $^ $(LDLIBS)
|
$(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $@ $(ARCHCRT0OBJ) $^ $(LDLIBS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(call DELFILE, $(BIN))
|
$(call DELFILE, $(BIN))
|
||||||
|
@ -155,10 +155,12 @@ ifeq ($(WINTOOL),y)
|
|||||||
# Windows-native toolchains
|
# Windows-native toolchains
|
||||||
ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)$(DELIM)include}"
|
ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)$(DELIM)include}"
|
||||||
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)$(DELIM)include}" -isystem "${shell cygpath -w $(TOPDIR)$(DELIM)include$(DELIM)cxx}"
|
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)$(DELIM)include}" -isystem "${shell cygpath -w $(TOPDIR)$(DELIM)include$(DELIM)cxx}"
|
||||||
|
ARCHCRT0OBJ = "${shell cygpath -w $(TOPDIR)$(DELIM)startup$(DELIM)crt0$(OBJEXT)}"
|
||||||
else
|
else
|
||||||
# Linux/Cygwin-native toolchain
|
# Linux/Cygwin-native toolchain
|
||||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)$(DELIM)include
|
ARCHINCLUDES = -I. -isystem $(TOPDIR)$(DELIM)include
|
||||||
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)$(DELIM)include -isystem $(TOPDIR)$(DELIM)include$(DELIM)cxx
|
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)$(DELIM)include -isystem $(TOPDIR)$(DELIM)include$(DELIM)cxx
|
||||||
|
ARCHCRT0OBJ = $(TOPDIR)$(DELIM)startup$(DELIM)crt0$(OBJEXT)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
||||||
@ -167,6 +169,11 @@ CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
|
|||||||
CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
|
||||||
CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
|
CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
|
||||||
|
|
||||||
|
# ELF module definitions
|
||||||
|
|
||||||
|
CELFFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
|
||||||
|
CXXELFFLAGS = $(CXXFLAGS) -mlong-calls # --target1-abs
|
||||||
|
|
||||||
# C Pre-processor
|
# C Pre-processor
|
||||||
|
|
||||||
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
|
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
|
||||||
@ -192,3 +199,12 @@ ifneq ($(LIBGCC),)
|
|||||||
LDLIBPATH += -L ${shell dirname $(LIBGCC)}
|
LDLIBPATH += -L ${shell dirname $(LIBGCC)}
|
||||||
LDLIBS += -lgcc
|
LDLIBS += -lgcc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# ELF module definitions
|
||||||
|
|
||||||
|
LDELFFLAGS = -r -e _start -Bstatic
|
||||||
|
ifeq ($(WINTOOL),y)
|
||||||
|
LDELFFLAGS += -T "${shell cygpath -w $(TOPDIR)/scripts/gnu-elf.ld}"
|
||||||
|
else
|
||||||
|
LDELFFLAGS += -T $(TOPDIR)/scripts/gnu-elf.ld
|
||||||
|
endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user