On 13 February 2012 19:49, Peter Maydell <peter.maydell at linaro.org> wrote: > diff --git a/model.lds.S b/model.lds.S > index 3af4e07..10c13b1 100644 > --- a/model.lds.S > +++ b/model.lds.S > @@ -12,12 +12,14 @@ OUTPUT_ARCH(arm) > ?TARGET(binary) > > ?INPUT(./monitor.o) > -INPUT(./boot.o) > ?#ifndef SEMIHOSTING > +INPUT(./boot.o) > ?INPUT(./uImage) > ?#ifdef USE_INITRD > ?INPUT(./filesystem.cpio.gz) > ?#endif > +#else > +INPUT(./bootsemi.o) > ?#endif Actually it looks as if there's no need to have INPUT() lines for the .o files at all, because the linker pulls in the correct ones anyway when we refer to them in the SECTIONS{} part below [this is why the resulting .axf works correctly for semihosting even when there's an INPUT(./boot.o) line, because the linker uses bootsemi.o anyway]. So I think we could just delete the INPUT(./monitor.o) INPUT(./boot.o) lines altogether. Anybody with a better grasp of GNU ld linker script syntax care to confirm/deny ? -- PMM