mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 23:51:33 +00:00
NetStar: eeprom - fix linker error
linking eeprom with libgeneric.a is not really needed and causes following error: ../../lib_generic/libgeneric.a(string.o): In function `strcmp': lib_generic/string.c:152: multiple definition of `strcmp' ../../examples/standalone/libstubs.a(stubs.o):include/_exports.h:24: first defined here Remove eeprom linker script as well and generate entry point object (to start application by jumping on its beginning) on the fly. Out-of-tree build tested as well. Signed-off-by: Ladislav Michl <ladis@linux-mips.org> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
This commit is contained in:
parent
308d463eaf
commit
3a67566c1d
3 changed files with 26 additions and 94 deletions
|
@ -29,20 +29,15 @@ include $(TOPDIR)/config.mk
|
|||
LIB = $(obj)lib$(BOARD).a
|
||||
|
||||
COBJS := netstar.o
|
||||
SOBJS := setup.o crcek.o
|
||||
SOBJS := setup.o
|
||||
|
||||
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) eeprom.c \
|
||||
eeprom_start.S
|
||||
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(COBJS))
|
||||
SOBJS := $(addprefix $(obj),$(SOBJS))
|
||||
|
||||
gcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`)
|
||||
|
||||
LOAD_ADDR = 0x10400000
|
||||
LDSCRIPT = $(TOPDIR)/board/$(BOARDDIR)/eeprom.lds
|
||||
lnk = $(if $(obj),$(obj),.)
|
||||
|
||||
HOSTCFLAGS = -Wall -pedantic -I$(TOPDIR)/include
|
||||
#########################################################################
|
||||
|
||||
all: $(obj).depend $(LIB) $(obj)eeprom.srec $(obj)eeprom.bin \
|
||||
$(obj)crcek.srec $(obj)crcek.bin $(obj)crcit
|
||||
|
@ -50,41 +45,42 @@ all: $(obj).depend $(LIB) $(obj)eeprom.srec $(obj)eeprom.bin \
|
|||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) $(ARFLAGS) $@ $^
|
||||
|
||||
$(obj)eeprom.srec: $(obj)eeprom.o $(obj)eeprom_start.o $(obj)u-boot.lds
|
||||
cd $(lnk) && $(LD) -T $(obj)u-boot.lds -g -Ttext $(LOAD_ADDR) \
|
||||
-o $(<:.o=) -e eeprom eeprom.o eeprom_start.o \
|
||||
-L$(obj)../../examples/standalone -lstubs \
|
||||
-L$(obj)../../lib_generic -lgeneric \
|
||||
-L$(gcclibdir) -lgcc
|
||||
$(OBJCOPY) -O srec $(<:.o=) $@
|
||||
$(obj)eeprom_start.o:
|
||||
echo "b eeprom" | $(CC) $(AFLAGS) -c -x assembler -o $@ -
|
||||
|
||||
$(obj)eeprom.bin: $(obj)eeprom.srec
|
||||
$(OBJCOPY) -I srec -O binary $< $@ 2>/dev/null
|
||||
$(obj)eeprom: $(obj)eeprom_start.o $(obj)eeprom.o
|
||||
$(LD) -Ttext $(LOAD_ADDR) -e eeprom -o $@ $^ \
|
||||
-L$(obj)../../examples/standalone -lstubs \
|
||||
$(PLATFORM_LIBS)
|
||||
|
||||
$(obj)eeprom.srec: $(obj)eeprom
|
||||
$(OBJCOPY) -S -O srec $(<:.o=) $@
|
||||
|
||||
$(obj)eeprom.bin: $(obj)eeprom
|
||||
$(OBJCOPY) -S -O binary $< $@
|
||||
|
||||
$(obj)crcek.srec: $(obj)crcek.o
|
||||
$(LD) -g -Ttext 0x00000000 \
|
||||
-o $(<:.o=) -e crcek $^
|
||||
$(OBJCOPY) -O srec $(<:.o=) $@
|
||||
$(LD) -g -Ttext 0x00000000 -e crcek -o $(<:.o=) $^
|
||||
$(OBJCOPY) -S -O srec $(<:.o=) $@
|
||||
|
||||
$(obj)crcek.bin: $(obj)crcek.srec
|
||||
$(OBJCOPY) -I srec -O binary $< $@ 2>/dev/null
|
||||
$(OBJCOPY) -I srec -O binary $< $@
|
||||
|
||||
$(obj)crcit: $(obj)crcit.o $(obj)crc32.o
|
||||
$(HOSTCC) $(HOSTCFLAGS) -o $@ $^
|
||||
|
||||
$(obj)crcit.o: crcit.c
|
||||
$(obj)crcit.o: crcit.c
|
||||
$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
|
||||
|
||||
$(obj)crc32.o: $(SRCTREE)/lib_generic/crc32.c
|
||||
$(HOSTCC) $(HOSTCFLAGS) -DUSE_HOSTCC -o $@ -c $<
|
||||
|
||||
$(obj)u-boot.lds: $(LDSCRIPT)
|
||||
$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
|
||||
$(obj)crc32.o: $(SRCTREE)/lib_generic/crc32.c
|
||||
$(HOSTCC) $(HOSTCFLAGS) -DUSE_HOSTCC -I$(TOPDIR)/include \
|
||||
-o $@ -c $<
|
||||
|
||||
clean:
|
||||
rm -f $(SOBJS) $(OBJS) $(obj)eeprom $(obj)eeprom.srec \
|
||||
$(obj)eeprom.bin $(obj)crcek $(obj)crcek.srec \
|
||||
$(obj)crcek.bin $(obj)u-boot.lds
|
||||
rm -f $(SOBJS) $(OBJS) \
|
||||
$(obj)eeprom_start.o $(obj)eeprom.o \
|
||||
$(obj)eeprom $(obj)eeprom.srec $(obj)eeprom.bin \
|
||||
$(obj)crcek.o $(obj)crcek $(obj)crcek.srec $(obj)crcek.bin
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
|
|
@ -1,51 +0,0 @@
|
|||
/*
|
||||
* (C) Copyright 2002
|
||||
* Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
|
||||
* (C) Copyright 2005
|
||||
* Ladislav Michl, 2N Telekomunikace, <michl@2n.cz>
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
|
||||
OUTPUT_ARCH(arm)
|
||||
ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
. = ALIGN(4);
|
||||
.text :
|
||||
{
|
||||
eeprom_start.o (.text)
|
||||
*(.text)
|
||||
}
|
||||
|
||||
. = ALIGN(4);
|
||||
.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
|
||||
|
||||
. = ALIGN(4);
|
||||
.data : { *(.data) }
|
||||
|
||||
. = ALIGN(4);
|
||||
.got : { *(.got) }
|
||||
|
||||
. = ALIGN(4);
|
||||
__bss_start = .;
|
||||
.bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
|
||||
_end = .;
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2005 2N Telekomunikace
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
*/
|
||||
|
||||
.globl _start
|
||||
_start: b eeprom
|
||||
|
||||
.end
|
Loading…
Reference in a new issue