# APPLE LOCAL constant CFStrings
darwin.o: $(HASHTAB_H) toplev.h

# APPLE LOCAL begin pragma fenv
# APPLE LOCAL begin optimization pragmas 3124235/3420242
darwin-c.o: options.h opts.h
# APPLE LOCAL end optimization pragmas 3124235/3420242
# APPLE LOCAL end pragma fenv

darwin.o: $(srcdir)/config/darwin.c $(CONFIG_H) $(SYSTEM_H) coretypes.h     \
  $(TM_H) $(RTL_H) $(REGS_H) hard-reg-set.h $(REAL_H) insn-config.h         \
  conditions.h insn-flags.h output.h insn-attr.h flags.h $(TREE_H) expr.h   \
  reload.h function.h $(GGC_H) langhooks.h $(TARGET_H) $(TM_P_H) gt-darwin.h \
  config/darwin-sections.def
	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/darwin.c

# LLVM LOCAL begin put va_opt in GC memory 7210265
darwin-c.o: $(srcdir)/config/darwin-c.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
  $(TM_H) $(CPPLIB_H) $(TREE_H) c-pragma.h $(C_TREE_H) toplev.h $(TM_P_H) \
  c-incpath.h flags.h $(C_COMMON_H) gt-darwin-c.h
	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/darwin-c.c $(PREPROCESSOR_DEFINES)
# LLVM LOCAL end put va_opt in GC memory 7210265

gt-darwin.h : s-gtype ; @true
# LLVM LOCAL put va_opt in GC memory 7210265
gt-darwin-c.h : s-gtype ; @true

# APPLE LOCAL begin mainline 2007-06-14 5235474
darwin-driver.o: $(srcdir)/config/darwin-driver.c \
  $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H)
	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
	  $(srcdir)/config/darwin-driver.c
# APPLE LOCAL end mainline 2007-06-14 5235474

 # APPLE LOCAL begin 4505290
# How to build crt3.o
EXTRA_MULTILIB_PARTS=crt3.o
# Pass -fno-tree-dominator-opts to work around bug 26840.
$(T)crt3$(objext): $(srcdir)/config/darwin-crt3.c $(GCC_PASSES) \
	$(TCONFIG_H) stmp-int-hdrs tsystem.h
	# APPLE LOCAL use -mlongcall for large text support
	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -mlongcall \
	  -fno-tree-dominator-opts $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) \
	$(DARWIN_EXTRA_CRT_BUILD_CFLAGS) \
	  -c $(srcdir)/config/darwin-crt3.c -o $(T)crt3$(objext)

 # APPLE LOCAL end 4505290
# Use unwind-dw2-fde-darwin
LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-darwin.c \
  $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c

# -pipe because there's an assembler bug, 4077127, which causes
# it to not properly process the first # directive, causing temporary
# file names to appear in stabs, causing the bootstrap to fail.  Using -pipe
# works around this by not having any temporary file names.
TARGET_LIBGCC2_CFLAGS = -fPIC -pipe
