
Hi Peter,
On 27/04/2016 12:15, Peter Robinson wrote:
Hi All,
I didn't look closely when it happened with rc1 because I saw a pull req from Stefano shortly afterwards and I decided to try again after that landed. With rc3 I'm still seeing the same issue.
Basically all the i.MX6 devices (cm_fx6,mx6cuboxi,novena,riotboard,udoo,wandboard,warp) we currently build for Fedora are failing to build. It looks very similar to some 64 bit math issues [1] [2] a search gives me although from the linker command I'm failing to see what code is at fault so any assistance in debugging this would be great. I've checked it failed on < gcc6 too and 2016.03 builds so it appears a regression in 05rcX.
The (for cuboxi example) basic error is: ld.bfd -pie --gc-sections -Bstatic -Ttext 0x17800000 -o u-boot -T u-boot.lds arch/arm/cpu/armv7/start.o --start-group arch/arm/cpu/built-in.o arch/arm/cpu/armv7/built-in.o arch/arm/imx-common/built-in.o arch/arm/lib/built-in.o board/solidrun/mx6cuboxi/built-in.o cmd/built-in.o common/built-in.o disk/built-in.o drivers/built-in.o drivers/dma/built-in.o drivers/gpio/built-in.o drivers/i2c/built-in.o drivers/mmc/built-in.o drivers/mtd/built-in.o drivers/mtd/onenand/built-in.o drivers/mtd/spi/built-in.o drivers/net/built-in.o drivers/net/phy/built-in.o drivers/pci/built-in.o drivers/power/built-in.o drivers/power/battery/built-in.o drivers/power/fuel_gauge/built-in.o drivers/power/mfd/built-in.o drivers/power/pmic/built-in.o drivers/power/regulator/built-in.o drivers/serial/built-in.o drivers/spi/built-in.o drivers/usb/common/built-in.o drivers/usb/dwc3/built-in.o drivers/usb/emul/built-in.o drivers/usb/eth/built-in.o drivers/usb/gadget/built-in.o drivers/usb/gadget/udc/built-in.o drivers/usb/host/built-in.o drivers/usb/musb-new/built-in.o drivers/usb/musb/built-in.o drivers/usb/phy/built-in.o drivers/usb/ulpi/built-in.o fs/built-in.o lib/built-in.o net/built-in.o test/built-in.o test/dm/built-in.o --end-group arch/arm/lib/eabi_compat.o -L /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/6.0.0 -lgcc -Map u-boot.map ld.bfd: error: /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/6.0.0/libgcc.a(_udivmoddi4.o) uses VFP register arguments, u-boot does not ld.bfd: failed to merge target specific data of file /usr/lib/gcc/armv7hl-redhat-linux-gnueabi/6.0.0/libgcc.a(_udivmoddi4.o)
Full log at https://pbrobinson.fedorapeople.org/u-boot-mx6cuboxi-fail.txt
I can confirm this - I started bisect and I have found this one:
commit 3cb4f25cc702db17455583599d0940c81337a17a Author: Peng Fan van.freenix@gmail.com Date: Wed Mar 9 16:07:21 2016 +0800
video: ipu: avoid overflow issue
Multiplication, as "clk->parent->rate * 16" may overflow. So use do_div to avoid such issue.
Signed-off-by: Peng Fan van.freenix@gmail.com Signed-off-by: Sandor Yu sandor.yu@nxp.com Cc: Anatolij Gustschin agust@denx.de Cc: Stefano Babic sbabic@denx.de Cc: Fabio Estevam fabio.estevam@nxp.com
:040000 040000 9672cb921a1051b5357931e8835884e2cccf8ec6 3cbbeea448780bb4855f5458dd98d017239b729a M drivers
Checking the patch, I have found:
clk->rate = (u64)(clk->parent->rate * 16) / div;
This seems the cause for the failing build.
This confirms an issue. IMHO we can replace it with:
clk->rate = (u64)lldiv(clk->parent->rate * 16, div);
Peng, what do you mind ?
Best regards, Stefano Babic