[U-Boot] [PATCH 1/4] ARM: fix u-boot.lds for -ffunction-sections/-fdata-sections

Stephen Warren
2012-10-18T03:17:45Z

On 10/17/2012 05:58 PM, Simon Glass wrote:
> Hi Stephen,
>
> On Tue, Oct 16, 2012 at 2:50 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
>> From: Stephen Warren <swarren@nvidia.com>
>>
>> When -ffunction-sections or -fdata-section are used, symbols are placed
>> into sections such as .data.eserial1_device and .bss.serial_current.
>> Update the linker script to explicitly include these. Without this
>> change (at least with my gcc-4.5.3 built using crosstool-ng), I see that
>> the sections do end up being included, but __bss_end__ gets set to the
>> same value as __bss_start.
>>
>> Signed-off-by: Stephen Warren <swarren@nvidia.com>
>> ---
>> This series fixes an SPL size overflow problem on Tegra. Tom Warren is
>> out on vacation until Oct 25th, so he certainly won't be able to review
>> this. Perhaps it could be applied directly to the ARM tree if enough
>> Tegra people ack the series?
>>
>> Note that this series is not enough to make Tegra support work; either
>> you must hack ./arch/arm/cpu/arm720t/tegra-common/spl.c to call
>> serial_initialize() right before serial_init() in preloader_console_init()
>> or wait for Allen Martin to rework Tegra's SPL support using the common
>> SPL code.
>
> Are you going to submit a patch to enable function-sections, or is
> that a separate discussion?

For the SPL on Tegra, those flags were already on; this patch fixes a
bug rather than prepares for new functionality.

>> diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds

>> - .u_boot_cmd : { *(.u_boot_cmd) }
>> + .u_boot_cmd : { *(.u_boot_cmd*) }
>
> I don't think this line is needed?
>
...
>> - *(.dynsym)
>> + *(.dynsym*)
>
> Nor this one?

Possibly. I changed all the section names to be future-proof. Perhaps a
more targeted patch is warranted.