]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
Link using gcc and get rid of the LIBGCC stuff
authormarcansoft <marcansoft@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Fri, 26 Feb 2010 14:03:03 +0000 (14:03 +0000)
committermarcansoft <marcansoft@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Fri, 26 Feb 2010 14:03:03 +0000 (14:03 +0000)
GCC knows how to find libgcc, and the proper way to link C code is to
use gcc, not ld.

armsrc/Makefile
common/Makefile.common

index 045e1fba49ddb217b9ef672978fe7d62266e8d8e..cc3e4a27c2e014fb3a0b083b2ff570c815eb3e06 100644 (file)
@@ -49,8 +49,8 @@ all: $(OBJDIR)/osimage.s19 $(OBJDIR)/fpgaimage.s19
 $(OBJDIR)/fpga.o: fpga.bit
        $(OBJCOPY) -O elf32-littlearm -I binary -B arm --redefine-sym _binary____fpga_fpga_bit_start=_binary_fpga_bit_start --redefine-sym _binary____fpga_fpga_bit_end=_binary_fpga_bit_end --prefix-sections=fpga_bit  $^ $@
 
 $(OBJDIR)/fpga.o: fpga.bit
        $(OBJCOPY) -O elf32-littlearm -I binary -B arm --redefine-sym _binary____fpga_fpga_bit_start=_binary_fpga_bit_start --redefine-sym _binary____fpga_fpga_bit_end=_binary_fpga_bit_end --prefix-sections=fpga_bit  $^ $@
 
-$(OBJDIR)/fullimage.elf: $(VERSIONOBJ) $(OBJDIR)/fpga.o $(THUMBOBJ) $(ARMOBJ) $(LIBGCC)
-       $(LD) -g -Tldscript -Map=$(patsubst %.elf,%.map,$@) -o $@ $^
+$(OBJDIR)/fullimage.elf: $(VERSIONOBJ) $(OBJDIR)/fpga.o $(THUMBOBJ) $(ARMOBJ)
+       $(CC) $(LDFLAGS) -Wl,-T,ldscript,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^ $(LIBS)
 
 $(OBJDIR)/fpgaimage.elf: $(OBJDIR)/fullimage.elf
        $(OBJCOPY) -F elf32-littlearm --only-section .fpgaimage $^ $@  
 
 $(OBJDIR)/fpgaimage.elf: $(OBJDIR)/fullimage.elf
        $(OBJCOPY) -F elf32-littlearm --only-section .fpgaimage $^ $@  
index 6fb2045ff62fee56d302c115943e5672f119dd0c..aa6049e38efaebe6a5d0609e91c9e20630c51a4f 100644 (file)
@@ -40,9 +40,6 @@ COPY=cp
 PATHSEP=/
 FLASH_TOOL=client/flasher
 DETECTED_OS=UNAME
 PATHSEP=/
 FLASH_TOOL=client/flasher
 DETECTED_OS=UNAME
-# You may/should set this in your environment
-LIBGCC ?= $(shell $(CC) -print-libgcc-file-name)
-PATH := $(PATH):$(DEVKITARM)/bin
 
 else
 
 
 else
 
@@ -51,7 +48,6 @@ DELETE=del /q
 MOVE=ren
 COPY=copy
 PATHSEP=\\#
 MOVE=ren
 COPY=copy
 PATHSEP=\\#
-LIBGCC ?= ../../devkitARM/lib/gcc/arm-elf/4.1.0/interwork/libgcc.a
 FLASH_TOOL=winsrc\\prox.exe
 DETECTED_OS=Windows
 
 FLASH_TOOL=winsrc\\prox.exe
 DETECTED_OS=Windows
 
@@ -64,6 +60,8 @@ VPATH = . ../common/ ../fpga/
 INCLUDES = ../include/proxmark3.h ../include/at91sam7s512.h ../include/config_gpio.h ../include/usb_cmd.h $(APP_INCLUDES)
 
 CFLAGS =  -c $(INCLUDE) -Wall -Werror -pedantic -std=gnu99 $(APP_CFLAGS)
 INCLUDES = ../include/proxmark3.h ../include/at91sam7s512.h ../include/config_gpio.h ../include/usb_cmd.h $(APP_INCLUDES)
 
 CFLAGS =  -c $(INCLUDE) -Wall -Werror -pedantic -std=gnu99 $(APP_CFLAGS)
+LDFLAGS = -nostartfiles -nodefaultlibs -Wl,-gc-sections -n
+LIBS = -lgcc
 
 THUMBOBJ = $(patsubst %.c,$(OBJDIR)/%.o,$(THUMBSRC))
 ARMOBJ   = $(ARMSRC:%.c=$(OBJDIR)/%.o)
 
 THUMBOBJ = $(patsubst %.c,$(OBJDIR)/%.o,$(THUMBSRC))
 ARMOBJ   = $(ARMSRC:%.c=$(OBJDIR)/%.o)
Impressum, Datenschutz