mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-10 12:39:22 -04: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
@ -29,20 +29,15 @@ include $(TOPDIR)/config.mk
|
|||||||
LIB = $(obj)lib$(BOARD).a
|
LIB = $(obj)lib$(BOARD).a
|
||||||
|
|
||||||
COBJS := netstar.o
|
COBJS := netstar.o
|
||||||
SOBJS := setup.o crcek.o
|
SOBJS := setup.o
|
||||||
|
|
||||||
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) eeprom.c \
|
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
||||||
eeprom_start.S
|
|
||||||
OBJS := $(addprefix $(obj),$(COBJS))
|
OBJS := $(addprefix $(obj),$(COBJS))
|
||||||
SOBJS := $(addprefix $(obj),$(SOBJS))
|
SOBJS := $(addprefix $(obj),$(SOBJS))
|
||||||
|
|
||||||
gcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`)
|
|
||||||
|
|
||||||
LOAD_ADDR = 0x10400000
|
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 \
|
all: $(obj).depend $(LIB) $(obj)eeprom.srec $(obj)eeprom.bin \
|
||||||
$(obj)crcek.srec $(obj)crcek.bin $(obj)crcit
|
$(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)
|
$(LIB): $(OBJS) $(SOBJS)
|
||||||
$(AR) $(ARFLAGS) $@ $^
|
$(AR) $(ARFLAGS) $@ $^
|
||||||
|
|
||||||
$(obj)eeprom.srec: $(obj)eeprom.o $(obj)eeprom_start.o $(obj)u-boot.lds
|
$(obj)eeprom_start.o:
|
||||||
cd $(lnk) && $(LD) -T $(obj)u-boot.lds -g -Ttext $(LOAD_ADDR) \
|
echo "b eeprom" | $(CC) $(AFLAGS) -c -x assembler -o $@ -
|
||||||
-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.bin: $(obj)eeprom.srec
|
$(obj)eeprom: $(obj)eeprom_start.o $(obj)eeprom.o
|
||||||
$(OBJCOPY) -I srec -O binary $< $@ 2>/dev/null
|
$(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
|
$(obj)crcek.srec: $(obj)crcek.o
|
||||||
$(LD) -g -Ttext 0x00000000 \
|
$(LD) -g -Ttext 0x00000000 -e crcek -o $(<:.o=) $^
|
||||||
-o $(<:.o=) -e crcek $^
|
$(OBJCOPY) -S -O srec $(<:.o=) $@
|
||||||
$(OBJCOPY) -O srec $(<:.o=) $@
|
|
||||||
|
|
||||||
$(obj)crcek.bin: $(obj)crcek.srec
|
$(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
|
$(obj)crcit: $(obj)crcit.o $(obj)crc32.o
|
||||||
$(HOSTCC) $(HOSTCFLAGS) -o $@ $^
|
$(HOSTCC) $(HOSTCFLAGS) -o $@ $^
|
||||||
|
|
||||||
$(obj)crcit.o: crcit.c
|
$(obj)crcit.o: crcit.c
|
||||||
$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
|
$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
$(obj)crc32.o: $(SRCTREE)/lib_generic/crc32.c
|
$(obj)crc32.o: $(SRCTREE)/lib_generic/crc32.c
|
||||||
$(HOSTCC) $(HOSTCFLAGS) -DUSE_HOSTCC -o $@ -c $<
|
$(HOSTCC) $(HOSTCFLAGS) -DUSE_HOSTCC -I$(TOPDIR)/include \
|
||||||
|
-o $@ -c $<
|
||||||
$(obj)u-boot.lds: $(LDSCRIPT)
|
|
||||||
$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(SOBJS) $(OBJS) $(obj)eeprom $(obj)eeprom.srec \
|
rm -f $(SOBJS) $(OBJS) \
|
||||||
$(obj)eeprom.bin $(obj)crcek $(obj)crcek.srec \
|
$(obj)eeprom_start.o $(obj)eeprom.o \
|
||||||
$(obj)crcek.bin $(obj)u-boot.lds
|
$(obj)eeprom $(obj)eeprom.srec $(obj)eeprom.bin \
|
||||||
|
$(obj)crcek.o $(obj)crcek $(obj)crcek.srec $(obj)crcek.bin
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak $(obj).depend
|
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…
x
Reference in New Issue
Block a user