Fix build on Mac OS X
The header stdio.h on Mac OS X includes some defines to do buffer overflow checks if using _FORTIFY_SOURCE > 2, which is the default. Defining _FORTIFY_SOURCE=0 disables this behavior. The Mac OS X linker ld64 has problem with common symbols in static archives. The workaround here is to run 'ranlib -c' on the static archive.
This commit is contained in:
parent
d4c48f66c2
commit
377d614c38
|
@ -23,6 +23,8 @@ CC = $(CROSS_COMPILE)gcc
|
||||||
LD = $(CROSS_COMPILE)ld
|
LD = $(CROSS_COMPILE)ld
|
||||||
REALLD = $(CROSS_COMPILE)ld
|
REALLD = $(CROSS_COMPILE)ld
|
||||||
SIZE = $(CROSS_COMPILE)size
|
SIZE = $(CROSS_COMPILE)size
|
||||||
|
AR = $(CROSS_COMPILE)ar
|
||||||
|
RANLIB = $(CROSS_COMPILE)ranlib
|
||||||
OBJCOPY = $(CROSS_COMPILE)objcopy
|
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||||||
OBJDUMP = $(CROSS_COMPILE)objdump
|
OBJDUMP = $(CROSS_COMPILE)objdump
|
||||||
OUTFILE = firmware
|
OUTFILE = firmware
|
||||||
|
|
|
@ -6,6 +6,7 @@ all: $(LIBFILE)
|
||||||
|
|
||||||
$(LIBFILE): $(OBJS)
|
$(LIBFILE): $(OBJS)
|
||||||
$(AR) rcs $@ $(OBJS)
|
$(AR) rcs $@ $(OBJS)
|
||||||
|
$(RANLIB) $(RANLIBFLAGS) $@
|
||||||
|
|
||||||
%.o : %.c
|
%.o : %.c
|
||||||
$(CC) $(CFLAGS) -o $@ $<
|
$(CC) $(CFLAGS) -o $@ $<
|
||||||
|
|
|
@ -23,6 +23,8 @@ CC = $(CROSS_COMPILE)gcc
|
||||||
LD = $(CROSS_COMPILE)ld
|
LD = $(CROSS_COMPILE)ld
|
||||||
REALLD = $(CROSS_COMPILE)ld
|
REALLD = $(CROSS_COMPILE)ld
|
||||||
SIZE = $(CROSS_COMPILE)size
|
SIZE = $(CROSS_COMPILE)size
|
||||||
|
AR = $(CROSS_COMPILE)ar
|
||||||
|
RANLIB = $(CROSS_COMPILE)ranlib
|
||||||
OBJCOPY = $(CROSS_COMPILE)objcopy
|
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||||||
OBJDUMP = $(CROSS_COMPILE)objdump
|
OBJDUMP = $(CROSS_COMPILE)objdump
|
||||||
OUTFILE = firmware
|
OUTFILE = firmware
|
||||||
|
@ -44,6 +46,12 @@ endif
|
||||||
CFLAGS = -std=c99 -c -g -O0 $(INCLUDE_PATHS) -Wall -funsigned-char -ffunction-sections -fdata-sections -fmessage-length=0 -DRAMCODE=$(RAMCODE) -fno-builtin -DSIMULATOR -I$(ROOT_PATH)/../simcore -include libc-unc0llide.h $(CONFIG_GCC_SHOWCOLUMN)
|
CFLAGS = -std=c99 -c -g -O0 $(INCLUDE_PATHS) -Wall -funsigned-char -ffunction-sections -fdata-sections -fmessage-length=0 -DRAMCODE=$(RAMCODE) -fno-builtin -DSIMULATOR -I$(ROOT_PATH)/../simcore -include libc-unc0llide.h $(CONFIG_GCC_SHOWCOLUMN)
|
||||||
#LDFLAGS = -nostartfiles
|
#LDFLAGS = -nostartfiles
|
||||||
|
|
||||||
|
ifeq ($(shell uname), Darwin)
|
||||||
|
# Mac OS X provides a stdio.h with unwanted defines
|
||||||
|
CFLAGS += -D_FORTIFY_SOURCE=0
|
||||||
|
# ld64 has problems with common symbols <rdar://problem/9870713>, apply a workaround
|
||||||
|
RANLIBFLAGS = -c
|
||||||
|
endif
|
||||||
|
|
||||||
CONFIG_MAKE_PRINTDIRECTORY = --no-print-directory
|
CONFIG_MAKE_PRINTDIRECTORY = --no-print-directory
|
||||||
CONFIG_GCC_SHOWCOLUMN =
|
CONFIG_GCC_SHOWCOLUMN =
|
||||||
|
|
Loading…
Reference in New Issue