Re: [PATCH v2 31/76] ARC: Build system: Makefiles, Kconfig, Linkerscript

From: Vineet Gupta
Date: Sat Jan 19 2013 - 07:24:52 EST


On Saturday 19 January 2013 12:34 AM, Sam Ravnborg wrote:
>> +#
>> +
>> +config ARC
>> + def_bool y
>> + select ARCH_NO_VIRT_TO_BUS
>> + # ARC Busybox based initramfs absolutely relies on DEVTMPFS for /dev
>> + # DEVTMPS in turn needs HOTPLUG
>> + select DEVTMPFS if !INITRAMFS_SOURCE=""
>> + select GENERIC_ATOMIC64
>> + select GENERIC_CLOCKEVENTS
>> + select GENERIC_FIND_FIRST_BIT
>> + # for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
>> + select GENERIC_IRQ_SHOW
>> + select GENERIC_PENDING_IRQ if SMP
>> + select GENERIC_SMP_IDLE_THREAD
>> + select HAVE_GENERIC_HARDIRQS
>> + select HOTPLUG if !INITRAMFS_SOURCE=""
> HOTPLUG is alwyas y now.

Done !

>> +# Hacks to enable final link due to absence of link-time branch relexation
>> +# and gcc choosing optimal(shorter) branches at -O3
>> +#
>> +# vineetg Feb 2010: -mlong-calls switched off for overall kernel build
>> +# However lib/decompress_inflate.o (.init.text) calls
>> +# zlib_inflate_workspacesize (.text) causing relocation errors.
>> +# Thus forcing all exten calls in this file to be long calls
>> +export CFLAGS_decompress_inflate.o = -mmedium-calls
>> +export CFLAGS_initramfs.o = -mmedium-calls
> This is gross..
> But I see no better way to do this for now.

Precisely - there's no better way as of now. Our GNU tools team is aware of this
and likely to provide us the much needed fix in future. Link time branch
relaxation is particularly complicated for ARCompact ISA given that we can have
insns which are 2,4,6,8 bytes long in same compilation unit. Internally I have a
hack - a build script which extracts the offending file from build errors, appends
the corresponding line to makefile and rebuilds - this is done recursively until
all relo errors are gone.

>
>> +
>> +obj-y := arcksyms.o setup.o irq.o time.o reset.o ptrace.o entry.o process.o \
>> + signal.o traps.o sys.o troubleshoot.o stacktrace.o clk.o
> For new stuff I usually recommend to drop line continuation using \
>
> Just do the much prettier:
> obj-y := arcksyms.o setup.o irq.o time.o reset.o ptrace.o entry.o process.o
> obj-y += signal.o traps.o sys.o troubleshoot.o stacktrace.o clk.o
>
>> ....
>> +# published by the Free Software Foundation.
>> +
>> +lib-y := strchr-700.o strcmp.o strcpy-700.o strlen.o \
>> + memcmp.o memcpy-700.o memset.o
> Avoid '\'
>
>> ....
>> +
>> +obj-y := extable.o ioremap.o dma.o fault.o init.o \
>> + tlb.o tlbex.o cache_arc700.o
> Avoid '\'
>
> Other these small nits I did not notice anything.
> General impression is that this looks good!
>
> Sam

All line continuations fixed.

Thx for the review,
-Vineet
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/