Rockbox Development > Starting Development and Compiling
Can't compile latest build for Gigabeat F/X
Bill Tuttle:
Starting yesterday (though I hadn't tried for 2-3 days) I can't build successfully for the Gigabeat F/X. I even deleted the apps and firmware directories, updated from SVN and tried. I have no patches installed. Here are the errors I'm getting:
LD rockbox.elf
/rockbox/build/librockbox.a(lcd-as-memframe.o): In function `lcd_write_yuv420_lines':
target/arm/lcd-as-memframe.S:(.icode+0xe8): multiple definition of `lcd_write_yuv420_lines'
/rockbox/build/librockbox.a(lcd-as-imx31.o):target/arm/imx31/gigabeat-s/lcd-as-imx31.S:(.icode+0x0): first defined here
/usr/local/arm-elf/lib/gcc/arm-elf/4.0.3/../../../../arm-elf/bin/ld: Warning: size of symbol `lcd_write_yuv420_lines' changed from 540 in /rockbox/build/librockbox.a(lcd-as-imx31.o) to 468 in /rockbox/build/librockbox.a(lcd-as-memframe.o)
collect2: ld returned 1 exit status
make[1]: *** [/rockbox/build/apps/rockbox.elf] Error 1
make: *** [build] Error 2
Can anyone else get the current build to complete for the GB? Thanks.
scorche:
Well, it is likely on your end, as the build servers do fine. A few steps you can try:
make clean
svn revert -R
deleting the entire directory and re-downloading
checking cross compilers
Bill Tuttle:
Thanks - I figured it must be on my end, I just wasn't sure what. I had deleted the source and redownloaded thinking it was a patch problem, but that didn't seem to help. I had forgotten about make clean and hadn't cleared out the build directory. That was probably the problem. It's building now. I'll check back when its done. Thanks.
---Bill Tuttle Gryphon's Moon
Bill Tuttle:
That was it - can't believe I forgot the clean. Thanks.
scharkalvin:
If a build fails in the link phase, the error would be in not doing a make clean.
If it failed in the compile phase, then make clean probably would not help.
Note on make files:
The need for a make clean is to insure that all the symbols get resolved during link. If the make file used complete dependancies for each object target (ie: all header files and all included header files) to force the recompile of any object whose source or included headers had changed then a make clean would not be needed. That means writing a target rule for each object. With lots of object files in a build this typically isn't done and a general case (source to object rule) is used. I usually only write specific object build rules for targets that include header files that are constantly being changed (such as the header file that contains the version string....)
Navigation
[0] Message Index
[#] Next page
Go to full version