The function `zephyr_linker_sources()` states: > When placing into NOINIT, RWDATA, RODATA, ROM_START, the contents of > the files will be placed inside an output section, so assume the > section definition is already present. However, in the posix linker.ld template the NOINIT, RWDATA, RODATA, and ROM_START was not placed inside a pre-defined output section, which means that linker scripts created for native_posix when `zephyr_linker_sources()` is used are invalid This result in the following failure: > /usr/bin/ld:zephyr/linker_zephyr_prebuilt.cmd:81: syntax error > collect2: error: ld returned 1 exit status This PR fixes this issue be predefining output sections according to the documented behavior. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
87 lines
2.0 KiB
Plaintext
87 lines
2.0 KiB
Plaintext
/*
|
|
* Copyright (c) 2016 Intel Corporation
|
|
* Copyright (c) 2017 Oticon A/S
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/**
|
|
* @file
|
|
* @brief Linker command/script file
|
|
*
|
|
* Linker script for the POSIX (native) platform
|
|
*/
|
|
|
|
#include <autoconf.h>
|
|
#include <linker/sections.h>
|
|
|
|
#include <linker/linker-defs.h>
|
|
#include <linker/linker-tool.h>
|
|
|
|
|
|
SECTIONS
|
|
{
|
|
|
|
SECTION_PROLOGUE(rom_start,,)
|
|
{
|
|
/* Located in generated directory. This file is populated by the
|
|
* zephyr_linker_sources() Cmake function.
|
|
*/
|
|
#include <snippets-rom-start.ld>
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
|
|
|
#include <linker/common-rom.ld>
|
|
|
|
SECTION_PROLOGUE(_RODATA_SECTION_NAME,,)
|
|
{
|
|
/* Located in generated directory. This file is populated by the
|
|
* zephyr_linker_sources() Cmake function.
|
|
*/
|
|
#include <snippets-rodata.ld>
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
|
|
|
SECTION_DATA_PROLOGUE(_DATA_SECTION_NAME,,)
|
|
{
|
|
/* Located in generated directory. This file is populated by the
|
|
* zephyr_linker_sources() Cmake function.
|
|
*/
|
|
#include <snippets-rwdata.ld>
|
|
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
|
|
|
|
#include <linker/common-ram.ld>
|
|
|
|
/* Located in generated directory. This file is populated by the
|
|
* zephyr_linker_sources() Cmake function.
|
|
*/
|
|
#include <snippets-ram-sections.ld>
|
|
|
|
#include <arch/posix/native_tasks.ld>
|
|
|
|
/* Located in generated directory. This file is populated by the
|
|
* zephyr_linker_sources() Cmake function.
|
|
*/
|
|
#include <snippets-data-sections.ld>
|
|
|
|
__data_region_end = .;
|
|
|
|
SECTION_DATA_PROLOGUE(_NOINIT_SECTION_NAME,,)
|
|
{
|
|
/* Located in generated directory. This file is populated by the
|
|
* zephyr_linker_sources() Cmake function.
|
|
*/
|
|
#include <snippets-noinit.ld>
|
|
} GROUP_LINK_IN(RAMABLE_REGION)
|
|
|
|
/* Located in generated directory. This file is populated by the
|
|
* zephyr_linker_sources() Cmake function.
|
|
*/
|
|
#include <snippets-sections.ld>
|
|
|
|
} INSERT AFTER .data;
|
|
|
|
/*
|
|
* Note that the INSERT command actually changes the meaning of the -T command
|
|
* line switch: The script will now augment the default SECTIONS instead of
|
|
* replacing it.
|
|
*/
|