This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hello, I've recently faced an issue I'm afraid I currently unable to debug. When building an arbitrary version of Linux kernel for powerpc-e500v2-linux-gnuspe target, it seems gcc prior to 5 produces a good image which boots just fine, and current gcc 5 snapshots (4.10.0-alpha20140810 for example) produce an image which hangs just after U-Boot hands over to the kernel. This behavior is well reproducible on real hardware as well as under qemu. I've prepared a minimal kernel config which is dysfunctional as is but still enough to demonstrate the problem in qemu. I believe the exact Linux version number doesn't actually matter here, but see the attachment for details. Compare the output produced by u-boot and this minified kernel build using gcc 4.9.1 and 4.10.0-alpha20140810 snapshot. % qemu-system-ppc --version QEMU emulator version 2.1.0, Copyright (c) 2003-2008 Fabrice Bellard % qemu-system-ppc -cpu e500v2 -M mpc8544ds -bios /usr/share/qemu/u-boot.e500 \ > -kernel arch/powerpc/boot/uImage-gcc4.9.1 -nographic U-Boot 2014.07-rc1-00079-g2072e72-dirty (May 16 2014 - 13:04:54) CPU: Unknown, Version: 0.0, (0x00000000) Core: e500, Version: 2.2, (0x80210022) Clock Configuration: CPU0:400 MHz, CCB:400 MHz, DDR:200 MHz (400 MT/s data rate), LBC: unknown (LCRR[CLKDIV] = 0x00) L1: D-cache 32 KiB enabled I-cache 32 KiB enabled DRAM: 128 MiB L2: disabled Using default environment PCI: base address e0008000 00:11.0 - 1af4:1000 - Network controller PCI1: Bus 00 - 00 In: serial Out: serial Err: serial Net: No ethernet found. Hit any key to stop autoboot: 0 ## Booting kernel from Legacy Image at 02000000 ... Image Name: Linux-2.6.35+ Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 507635 Bytes = 495.7 KiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at e8000000 Booting using the fdt blob at 0xe8000000 Uncompressing Kernel Image ... OK Loading Device Tree to 03fec000, end 03ffefff ... OK setup_arch: bootmem mpc85xx_ds_setup_arch() arch: exit <qemu terminated by user> % qemu-system-ppc -cpu e500v2 -M mpc8544ds -bios /usr/share/qemu/u-boot.e500 \ > -kernel arch/powerpc/boot/uImage-gcc5 -nographic U-Boot 2014.07-rc1-00079-g2072e72-dirty (May 16 2014 - 13:04:54) <hardware enumeration output just as above> Hit any key to stop autoboot: 0 ## Booting kernel from Legacy Image at 02000000 ... Image Name: Linux-2.6.35+ Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 505303 Bytes = 493.5 KiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at e8000000 Booting using the fdt blob at 0xe8000000 Uncompressing Kernel Image ... OK Loading Device Tree to 03fec000, end 03ffefff ... OK <hang> I also have another seemingly related issue: kernel module built w/ 4.10.0-alpha20140810 against a kernel configured for powerpc-e500v2-linux-gnuspe snapshot lacks .gnu.linkonce.this_module and .rela.gnu.linkonce.this_module sections. Current stable versions of gcc emit these sections but also drop it (and, consequently, init_module() and cleanup_module() symbols) when CFLAGS_MODULE is modified in any way, even w/ CFLAGS_MODULE="-mno-isel" for example. I now have completely no idea what to do next to find a cause of (1) gcc 5 snapshots producing unbootable kernel, and (2) different gcc versions producing garbled kernel modules when configured for SPE target. As for modules, I've compared assembler output of gcc configured for powerpc-e300c3-linux-gnu and powerpc-e500v2-linux-gnuspe and failed to spot real differences, but installed version of binutils is exactly the same for both configurations, and I'm completely sure my setup is correct. Regards.
Attachment:
kernel-config
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |