On Wed, Jun 21, 2017 at 11:30 PM, Nicholas Piggin <npiggin@xxxxxxxxx> wrote: > On Wed, 21 Jun 2017 22:52:25 +0200 > Arnd Bergmann <arnd@xxxxxxxx> wrote: > >> On Wed, Jun 21, 2017 at 1:32 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote: >> > On Wed, Jun 21, 2017 at 1:10 PM, Nicholas Piggin <npiggin@xxxxxxxxx> wrote: >> >> On Wed, 21 Jun 2017 12:49:10 +0200 >> > For my build testing, I have now reverted most of my patch and only >> > left the 'select THIN_ARCHIVES'. I'll let you know if I run into problems. >> >> I just got one build failure on a randconfig build with THIN_ARCHIVES >> but without LD_DCDE: >> >> /home/arnd/cross-gcc/bin/arm-linux-gnueabi-ld: section .data VMA >> [0000000000808000,000000000096cc7f] overlaps section .text VMA >> [0000000000080080,00000000008a8427] >> /home/arnd/cross-gcc/bin/arm-linux-gnueabi-ld: section .rodata VMA >> [00000000008a9000,0000000000ea216f] overlaps section .data VMA >> [0000000000808000,000000000096cc7f] >> /home/arnd/cross-gcc/bin/arm-linux-gnueabi-ld: section .bss VMA >> [000000000096cd00,000000000157896f] overlaps section .rodata VMA >> [00000000008a9000,0000000000ea216f] >> /home/arnd/cross-gcc/bin/arm-linux-gnueabi-ld: section __param VMA >> [0000000000ea2170,0000000000ea5257] overlaps section .bss VMA >> [000000000096cd00,000000000157896f] >> >> haven't spent any time analyzing it further, maybe you can see right >> away what caused this. If not, you could try the .config file at >> https://pastebin.com/raw/YTZKH9Xe > > It's due to vmlinux-xip.lds.S explicitly putting sections inside each > other > > . = PAGE_OFFSET + TEXT_OFFSET; > > Same config fails without thin archives for me. > > If XIP can't place these dynamically, at least you should use an > ASSERT() linker script function if sizes overlap. E.g., > > ASSERT(. <= PAGE_OFFSET + TEXT_OFFSET, "kernel too big"); > . = PAGE_OFFSET + TEXT_OFFSET; > Right, makes sense. The linker error actually shows this quite clearly, though I wonder why I never saw that with my LD_DCDE patch. It's possible that the sections were always small enough in that case, but there is probably something else going on as well. I'd like to end up with a version that lets me build randconfig kernels without warnings or errors (probably keeping LD_DCDE enabled is sufficient). I have to think about that some more, but for now this doesn't seem like a reason against doing THIN_ARCHIVES in mainline for ARM. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html