DENX . DULG . PortingProblemCannotMoveLocationCounterBackwards

14.2.9. Porting Problem: cannot move location counter backwards

I'm trying to port U-Boot to a new board and the linker throws an error message like this:
board/<your_board>/ cannot move location counter backwards (from 00000000b0008010 to 00000000b0008000)

Check your linker script board/your_board/ which controls how the object files are linked together to build the U-Boot image.

It looks as if your board uses an "embedded" environment, i. e. the flash sector containing the environment variables is surrounded by code. The tries to collect as many as possible code in the first part, making the gap between this first part and the environment sector as small as possible. Everything that does not fit is then placed in the second part, after the environment sector.

Some your modifications caused the code that was put in this first part to grow, so that the linker finds that it would have to overwrite space that is already used.

Try commenting out one (or more) line(s) before the line containing the "common/environment.o" statement. [ "lib_generic/zlib.o" is usually a good candidate for testing as it's big ]. Once you get U-Boot linked, you can check in the file how big the gap is, and which object files could be used to fill it up again.

----- Revision r1.1 - 29 Jul 2003 - 16:49 - Main.adm
Copyright © 2002-2021 by DENX Software Engineering