[U-Boot] Compile for SPARC Leon3 fails with *** No rule to make target ... ***

Hi all,
I`ve implemented Gaisler Research`s Leon3 SPARC core to a FPGA evaluation board of Actel. Now I`m about to get U-Boot running. So I made up my own board directory, added header files with my configuration-parameters etc. just as discribed in the u-boot README. The "make myboard_config" goes well, but "make all" fails with the following message.
make[1]: *** No rule to make target `/u-boot-2009.08_build/cpu/leon3/start.S', needed by `/u-boot-2009.08_build/cpu/leon3/start.o'. Stop.
I´d like to add that I set "BUILD_DIR=`/u-boot-2009.08_build" and I am using Gaisler`s Bare Cross Compiler with GCC 3.4.4. Searching the mailing-list-archives brought no advice to me. I also tried to study the Makefiles for half a week now, but I´m not familiar enought with it.
Thanks for your help!
Best regards,
Tobias Kraitschy

Hi! Read carefullly your config file! I've working with same things (Gaisler+Leon3+Gcc-4.3.3) on board ML-402. My config compiles without problem, so i suggest that makefile is good.
2009/9/16 Kraitschy, Tobias tobias.kraitschy@siemens.com:
Hi all,
I`ve implemented Gaisler Research`s Leon3 SPARC core to a FPGA evaluation board of Actel. Now I`m about to get U-Boot running. So I made up my own board directory, added header files with my configuration-parameters etc. just as discribed in the u-boot README. The "make myboard_config" goes well, but "make all" fails with the following message.
make[1]: *** No rule to make target `/u-boot-2009.08_build/cpu/leon3/start.S', needed by `/u-boot-2009.08_build/cpu/leon3/start.o'. Stop.
I´d like to add that I set "BUILD_DIR=`/u-boot-2009.08_build" and I am using Gaisler`s Bare Cross Compiler with GCC 3.4.4. Searching the mailing-list-archives brought no advice to me. I also tried to study the Makefiles for half a week now, but I´m not familiar enought with it.
Thanks for your help!
Best regards,
Tobias Kraitschy
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

Kraitschy, Tobias wrote:
Hi all,
I`ve implemented Gaisler Research`s Leon3 SPARC core to a FPGA evaluation board of Actel. Now I`m about to get U-Boot running. So I made up my own board directory, added header files with my configuration-parameters etc. just as discribed in the u-boot README. The "make myboard_config" goes well, but "make all" fails with the following message.
make[1]: *** No rule to make target `/u-boot-2009.08_build/cpu/leon3/start.S', needed by `/u-boot-2009.08_build/cpu/leon3/start.o'. Stop.
The source has a cpu/leon3/start.S file. The Makefile in that directory has $(START): $(START:.o=.S) so that is where the dependency is coming from. Is the file's location correct? Does the file really exist there: ls /u-boot-2009.08_build/cpu/leon3/start.S
I´d like to add that I set "BUILD_DIR=`/u-boot-2009.08_build" and I am using Gaisler`s Bare Cross Compiler with GCC 3.4.4. Searching the mailing-list-archives brought no advice to me. I also tried to study the Makefiles for half a week now, but I´m not familiar enought with it.
Setting BUILD_DIR to be an absolute path (leading "/") seems odd.
http://www.denx.de/wiki/DULG/UBootConfiguration says... "By default the build is performed locally and the objects are saved in the source directory. One of the two methods can be used to change this behaviour and build U-Boot to some external directory:"
Try building it in the source directory rather than putting the output in a separate directory. There are perennial problems with building into a separate directory (e.g. the $(OBJ) prefix is not prepended to the destination). This is an easy thing to miss or mess up (also easy to fix). Since leon3 is not a heavily used target, I would suspect that is the problem.
I would suggest not using BUILD_DIR and see if it works. If it does, update the cpu/leon3/Makefile to look like a more heavily used target CPU, e.g. a PowerPC like the 83xx: http://git.denx.de/?p=u-boot.git;a=blob;f=cpu/mpc83xx/Makefile;h=15e2c18b13760c25f266a51934659c4fdc845730;hb=HEAD
Thanks for your help!
Best regards,
Tobias Kraitschy
Good luck, gvb

Hi,
Unsetting BUILD_DIR solved the problem.
Of course /u-boot-2009.08_build/cpu/leon3/start.S does not exist here. I´ll try to figure out what´s wrong in the Makefile.
Thanks.
Best regards,
Tobias Kraitschy
-----Original Message----- From: Jerry Van Baren [mailto:gerald.vanbaren@ge.com] Date: Thursday, 17. September 2009 14:19 To: Kraitschy, Tobias Cc: u-boot@lists.denx.de Subject: Re: [U-Boot] Compile for SPARC Leon3 fails with *** No rule to make target ... ***
Kraitschy, Tobias wrote:
Hi all,
I`ve implemented Gaisler Research`s Leon3 SPARC core to a FPGA evaluation board of Actel. Now I`m about to get U-Boot running. So I made up my own board directory, added header files with my configuration-parameters etc. just as discribed in the u-boot README. The "make myboard_config" goes well, but "make all" fails with the following message.
make[1]: *** No rule to make target `/u-boot-2009.08_build/cpu/leon3/start.S', needed by `/u-boot-2009.08_build/cpu/leon3/start.o'. Stop.
The source has a cpu/leon3/start.S file. The Makefile in that directory has $(START): $(START:.o=.S) so that is where the dependency is coming from. Is the file's location correct? Does the file really exist there: ls /u-boot-2009.08_build/cpu/leon3/start.S
I´d like to add that I set "BUILD_DIR=`/u-boot-2009.08_build" and I am using Gaisler`s Bare Cross Compiler with GCC 3.4.4. Searching the mailing-list-archives brought no advice to me. I also tried to study the Makefiles for half a week now, but I´m not familiar enought with it.
Setting BUILD_DIR to be an absolute path (leading "/") seems odd.
http://www.denx.de/wiki/DULG/UBootConfiguration says... "By default the build is performed locally and the objects are saved in the source directory. One of the two methods can be used to change this behaviour and build U-Boot to some external directory:"
Try building it in the source directory rather than putting the output in a separate directory. There are perennial problems with building into a separate directory (e.g. the $(OBJ) prefix is not prepended to the destination). This is an easy thing to miss or mess up (also easy to fix). Since leon3 is not a heavily used target, I would suspect that is the problem.
I would suggest not using BUILD_DIR and see if it works. If it does, update the cpu/leon3/Makefile to look like a more heavily used target CPU, e.g. a PowerPC like the 83xx: http://git.denx.de/?p=u-boot.git;a=blob;f=cpu/mpc83xx/Makefile;h=15e2c18b13760c25f266a51934659c4fdc845730;hb=HEAD
Thanks for your help!
Best regards,
Tobias Kraitschy
Good luck, gvb
participants (3)
-
Jerry Van Baren
-
Kraitschy, Tobias
-
Сергей Миронов