Re: problem compiling kernel ld error relocation truncated to fit: GPREL16 against symbol

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

On 7/12/2011, at 7:55 AM, Uros Bizjak wrote:
On Tue, Dec 6, 2011 at 5:46 PM, Raúl Porcel <armin76@xxxxxxxxxx> wrote:
On 11/13/2011 01:43 AM, Michael Cree wrote:

Is there anyone more knowledgeable than I about gcc who can give us
guidance as to why gcc-4.6 should be enlarging the data segment so much that the small data model cannot be used? Or is there a fix required in
the kernel code?

Guess Uros can help here...

Unfortunately, I have no idea... There are similar problems with gcc
build, so I use:

# Prevent GPREL16 relocation truncation
LDFLAGS += -Wl,--no-relax
BOOT_LDFLAGS += -Wl,--no-relax

Yeah, there are a growing number of packages being affected by this (presumably linker) problem and I have recently seen it with gcc- snapshot and gnat-4.6 in Debian. However I don't think this is the issue seen with the Linux kernel, which has the --relax argument commented out of the linker flags in the Makefile.

What we see is that gcc-4.4 successfully compiles the Linux kernel. Using gcc-4.6 results in relocation errors. The kernel Makefile adds - msmall-data to the compiler flags. If this is change to -mlarge-data then compilation with gcc-4.6 succeeds. What I am wondering about is what is the change in gcc-4.6 that causes the data segment (presumably) to be too large to stored in 64 kbytes (whereas gcc-4.4 can fit it in 64kbytes)?


To unsubscribe from this list: send the line "unsubscribe linux-alpha" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at

[Netdev]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Photo]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]     [Linux Resources]

Powered by Linux