linker: Remove unused (OPTIONAL) from linker scripts

(OPTIONAL) was a vestiage from the initial import of the Zephyr code
base and we dont utilize it with the GNU linker.  Additionally, the way
(OPTIONAL) gets defined to nothing creates a linker script that lld
(from llvm) doesn't like.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
Kumar Gala 2019-03-14 18:39:36 -05:00 committed by Kumar Gala
commit 4da0f8b796
11 changed files with 55 additions and 57 deletions

View file

@ -475,7 +475,7 @@ SECTIONS
GROUP_START(CCM)
SECTION_PROLOGUE(_CCM_BSS_SECTION_NAME, (NOLOAD OPTIONAL),SUBALIGN(4))
SECTION_PROLOGUE(_CCM_BSS_SECTION_NAME, (NOLOAD),SUBALIGN(4))
{
__ccm_start = .;
__ccm_bss_start = .;
@ -485,7 +485,7 @@ SECTIONS
__ccm_bss_end = .;
SECTION_PROLOGUE(_CCM_NOINIT_SECTION_NAME, (NOLOAD OPTIONAL),SUBALIGN(4))
SECTION_PROLOGUE(_CCM_NOINIT_SECTION_NAME, (NOLOAD),SUBALIGN(4))
{
__ccm_noinit_start = .;
*(.ccm_noinit)
@ -494,7 +494,7 @@ SECTIONS
__ccm_noinit_end = .;
SECTION_PROLOGUE(_CCM_DATA_SECTION_NAME, (OPTIONAL),SUBALIGN(4))
SECTION_PROLOGUE(_CCM_DATA_SECTION_NAME,,SUBALIGN(4))
{
__ccm_data_start = .;
*(.ccm_data)

View file

@ -10,7 +10,7 @@
KEEP(*(SORT(.native_##level[1-9][0-9]_task))); \
KEEP(*(SORT(.native_##level[1-9][0-9][0-9]_task))); \
SECTION_PROLOGUE (native_pre_tasks, (OPTIONAL),)
SECTION_PROLOGUE (native_pre_tasks,,)
{
__native_tasks_start = .;
NATIVE_INIT_LEVEL(PRE_BOOT_1)
@ -19,4 +19,4 @@ SECTION_PROLOGUE (native_pre_tasks, (OPTIONAL),)
NATIVE_INIT_LEVEL(FIRST_SLEEP)
NATIVE_INIT_LEVEL(ON_EXIT)
__native_tasks_end = .;
}
}

View file

@ -85,7 +85,7 @@ SECTIONS
/* 16-bit sections */
. = PHYS_RAM_ADDR;
SECTION_PROLOGUE(boot, (OPTIONAL),)
SECTION_PROLOGUE(boot,,)
{
*(.boot)
. = ALIGN(16);
@ -99,7 +99,7 @@ SECTIONS
#else
_image_text_start = .;
#endif
SECTION_PROLOGUE(_TEXT_SECTION_NAME, (OPTIONAL),)
SECTION_PROLOGUE(_TEXT_SECTION_NAME,,)
{
. = CONFIG_TEXT_SECTION_OFFSET;
*(.text_start)
@ -126,7 +126,7 @@ SECTIONS
#include <linker/common-rom.ld>
SECTION_PROLOGUE(_RODATA_SECTION_NAME, (OPTIONAL),)
SECTION_PROLOGUE(_RODATA_SECTION_NAME,,)
{
*(.rodata)
*(".rodata.*")
@ -193,7 +193,7 @@ SECTIONS
GROUP_START(RAMABLE_REGION)
#ifdef CONFIG_COVERAGE_GCOV
SECTION_PROLOGUE(_GCOV_BSS_SECTION_NAME, (NOLOAD OPTIONAL),)
SECTION_PROLOGUE(_GCOV_BSS_SECTION_NAME, (NOLOAD),)
{
MMU_PAGE_ALIGN
__gcov_bss_start = .;
@ -221,7 +221,7 @@ SECTIONS
_app_smem_num_words = _app_smem_size >> 2;
#endif /* CONFIG_USERSPACE */
SECTION_PROLOGUE(_BSS_SECTION_NAME, (NOLOAD OPTIONAL),)
SECTION_PROLOGUE(_BSS_SECTION_NAME, (NOLOAD),)
{
MMU_PAGE_ALIGN
#if !defined(CONFIG_USERSPACE)
@ -250,7 +250,7 @@ SECTIONS
__bss_num_words = (__bss_end - __bss_start) >> 2;
SECTION_PROLOGUE(_NOINIT_SECTION_NAME, (NOLOAD OPTIONAL),)
SECTION_PROLOGUE(_NOINIT_SECTION_NAME, (NOLOAD),)
{
/*
* This section is used for non-initialized objects that
@ -268,7 +268,7 @@ SECTIONS
} GROUP_DATA_LINK_IN(RAMABLE_REGION, RAMABLE_REGION)
SECTION_DATA_PROLOGUE(_DATA_SECTION_NAME, (OPTIONAL),)
SECTION_DATA_PROLOGUE(_DATA_SECTION_NAME,,)
{
__data_ram_start = .;
@ -372,7 +372,7 @@ SECTIONS
* However, __mmu_tables_start *must* remain stable between builds,
* we can't have anything shifting the memory map beforehand.
*/
SECTION_DATA_PROLOGUE(mmu_tables, (OPTIONAL),)
SECTION_DATA_PROLOGUE(mmu_tables,,)
{
/* Page Tables are located here if MMU is enabled.*/
MMU_PAGE_ALIGN
@ -405,7 +405,7 @@ SECTIONS
#ifndef LINKER_PASS2
/* static interrupts */
SECTION_PROLOGUE(intList, (OPTIONAL),)
SECTION_PROLOGUE(intList,,)
{
KEEP(*(.spurIsr))
KEEP(*(.spurNoErrIsr))
@ -415,7 +415,7 @@ SECTIONS
#ifdef CONFIG_X86_MMU
/* Memory management unit*/
SECTION_PROLOGUE(mmulist, (OPTIONAL),)
SECTION_PROLOGUE(mmulist,,)
{
/* get size of the mmu lists needed for gen_mmu_x86.py*/
LONG((__MMU_LIST_END__ - __MMU_LIST_START__) / __MMU_REGION_SIZEOF)

View file

@ -1,35 +1,35 @@
SECTION_DATA_PROLOGUE(initlevel, (OPTIONAL),)
SECTION_DATA_PROLOGUE(initlevel,,)
{
DEVICE_INIT_SECTIONS()
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
#if defined(CONFIG_GEN_ISR_TABLES) && defined(CONFIG_DYNAMIC_INTERRUPTS)
SECTION_DATA_PROLOGUE(sw_isr_table, (OPTIONAL),)
SECTION_DATA_PROLOGUE(sw_isr_table,,)
{
*(SW_ISR_TABLE)
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
#endif
/* verify we don't have rogue .init_<something> initlevel sections */
SECTION_DATA_PROLOGUE(initlevel_error, (OPTIONAL), )
SECTION_DATA_PROLOGUE(initlevel_error,,)
{
DEVICE_INIT_UNDEFINED_SECTION()
}
ASSERT(SIZEOF(initlevel_error) == 0, "Undefined initialization levels used.")
SECTION_DATA_PROLOGUE(initshell, (OPTIONAL),)
SECTION_DATA_PROLOGUE(initshell,,)
{
SHELL_INIT_SECTIONS()
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
SECTION_DATA_PROLOGUE(log_dynamic_sections, (OPTIONAL),)
SECTION_DATA_PROLOGUE(log_dynamic_sections,,)
{
__log_dynamic_start = .;
KEEP(*(SORT(.log_dynamic_*)));
__log_dynamic_end = .;
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
SECTION_DATA_PROLOGUE(_static_thread_area, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(_static_thread_area,,SUBALIGN(4))
{
_static_thread_data_list_start = .;
KEEP(*(SORT_BY_NAME("._static_thread_data.static.*")))
@ -47,83 +47,83 @@
_static_kernel_objects_begin = .;
#endif /* CONFIG_USERSPACE */
SECTION_DATA_PROLOGUE(_k_timer_area, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(_k_timer_area,,SUBALIGN(4))
{
_k_timer_list_start = .;
KEEP(*("._k_timer.static.*"))
_k_timer_list_end = .;
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
SECTION_DATA_PROLOGUE(_k_mem_slab_area, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(_k_mem_slab_area,,SUBALIGN(4))
{
_k_mem_slab_list_start = .;
KEEP(*("._k_mem_slab.static.*"))
_k_mem_slab_list_end = .;
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
SECTION_DATA_PROLOGUE(_k_mem_pool_area, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(_k_mem_pool_area,,SUBALIGN(4))
{
_k_mem_pool_list_start = .;
KEEP(*("._k_mem_pool.static.*"))
_k_mem_pool_list_end = .;
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
SECTION_DATA_PROLOGUE(_k_sem_area, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(_k_sem_area,,SUBALIGN(4))
{
_k_sem_list_start = .;
KEEP(*("._k_sem.static.*"))
_k_sem_list_end = .;
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
SECTION_DATA_PROLOGUE(_k_mutex_area, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(_k_mutex_area,,SUBALIGN(4))
{
_k_mutex_list_start = .;
KEEP(*("._k_mutex.static.*"))
_k_mutex_list_end = .;
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
SECTION_DATA_PROLOGUE(_k_queue_area, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(_k_queue_area,,SUBALIGN(4))
{
_k_queue_list_start = .;
KEEP(*("._k_queue.static.*"))
_k_queue_list_end = .;
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
SECTION_DATA_PROLOGUE(_k_stack_area, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(_k_stack_area,,SUBALIGN(4))
{
_k_stack_list_start = .;
KEEP(*("._k_stack.static.*"))
_k_stack_list_end = .;
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
SECTION_DATA_PROLOGUE(_k_msgq_area, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(_k_msgq_area,,SUBALIGN(4))
{
_k_msgq_list_start = .;
KEEP(*("._k_msgq.static.*"))
_k_msgq_list_end = .;
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
SECTION_DATA_PROLOGUE(_k_mbox_area, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(_k_mbox_area,,SUBALIGN(4))
{
_k_mbox_list_start = .;
KEEP(*("._k_mbox.static.*"))
_k_mbox_list_end = .;
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
SECTION_DATA_PROLOGUE(_k_pipe_area, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(_k_pipe_area,,SUBALIGN(4))
{
_k_pipe_list_start = .;
KEEP(*("._k_pipe.static.*"))
_k_pipe_list_end = .;
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
SECTION_DATA_PROLOGUE(_net_buf_pool_area, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(_net_buf_pool_area,,SUBALIGN(4))
{
_net_buf_pool_list = .;
KEEP(*(SORT_BY_NAME("._net_buf_pool.static.*")))
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
SECTION_DATA_PROLOGUE(net_if, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(net_if,,SUBALIGN(4))
{
__net_if_start = .;
*(".net_if.*")
@ -131,7 +131,7 @@
__net_if_end = .;
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
SECTION_DATA_PROLOGUE(net_if_dev, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(net_if_dev,,SUBALIGN(4))
{
__net_if_dev_start = .;
*(".net_if_dev.*")
@ -140,7 +140,7 @@
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
#if defined(CONFIG_NET_SHELL)
SECTION_DATA_PROLOGUE(net_stack, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(net_stack,,SUBALIGN(4))
{
__net_stack_start = .;
*(".net_stack.*")
@ -149,7 +149,7 @@
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
#endif /* CONFIG_NET_SHELL */
SECTION_DATA_PROLOGUE(net_l2_data, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(net_l2_data,,SUBALIGN(4))
{
__net_l2_data_start = .;
*(".net_l2.data")
@ -158,7 +158,7 @@
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
#if defined(CONFIG_USB_DEVICE_STACK)
SECTION_DATA_PROLOGUE(usb_descriptor, (OPTIONAL), SUBALIGN(1))
SECTION_DATA_PROLOGUE(usb_descriptor,,SUBALIGN(1))
{
__usb_descriptor_start = .;
*(".usb.descriptor")
@ -166,7 +166,7 @@
__usb_descriptor_end = .;
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
SECTION_DATA_PROLOGUE(usb_data, (OPTIONAL), SUBALIGN(1))
SECTION_DATA_PROLOGUE(usb_data,,SUBALIGN(1))
{
__usb_data_start = .;
*(".usb.data")
@ -176,7 +176,7 @@
#endif /* CONFIG_USB_DEVICE_STACK */
#if defined(CONFIG_USB_DEVICE_BOS)
SECTION_DATA_PROLOGUE(usb_bos_desc, (OPTIONAL), SUBALIGN(1))
SECTION_DATA_PROLOGUE(usb_bos_desc,,SUBALIGN(1))
{
__usb_bos_desc_start = .;
*(".usb.bos_desc")

View file

@ -1,5 +1,5 @@
#if defined(CONFIG_GEN_ISR_TABLES) && !defined(CONFIG_DYNAMIC_INTERRUPTS)
SECTION_PROLOGUE(sw_isr_table, (OPTIONAL),)
SECTION_PROLOGUE(sw_isr_table,,)
{
*(SW_ISR_TABLE)
} GROUP_LINK_IN(ROMABLE_REGION)
@ -22,7 +22,7 @@
__CTOR_END__ = .;
} GROUP_LINK_IN(ROMABLE_REGION)
SECTION_PROLOGUE(init_array, (OPTIONAL),)
SECTION_PROLOGUE(init_array,,)
{
. = ALIGN(4);
__init_array_start = .;
@ -34,7 +34,7 @@
/* Build-time assignment of permissions to kernel objects to
* threads declared with K_THREAD_DEFINE()
*/
SECTION_PROLOGUE(object_access, (OPTIONAL),)
SECTION_PROLOGUE(object_access,,)
{
__object_access_start = .;
KEEP(*(".object_access.*"))
@ -42,14 +42,14 @@
}
#endif
SECTION_PROLOGUE(app_shmem_regions, (OPTIONAL),)
SECTION_PROLOGUE(app_shmem_regions,,)
{
__app_shmem_regions_start = .;
KEEP(*(SORT(".app_regions.*")));
__app_shmem_regions_end = .;
} GROUP_LINK_IN(ROMABLE_REGION)
SECTION_PROLOGUE (devconfig, (OPTIONAL),)
SECTION_PROLOGUE (devconfig,,)
{
__devconfig_start = .;
*(".devconfig.*")
@ -57,7 +57,7 @@
__devconfig_end = .;
} GROUP_LINK_IN(ROMABLE_REGION)
SECTION_PROLOGUE(net_l2, (OPTIONAL),)
SECTION_PROLOGUE(net_l2,,)
{
__net_l2_start = .;
*(".net_l2.init")
@ -66,7 +66,7 @@
} GROUP_LINK_IN(ROMABLE_REGION)
#if defined(CONFIG_BT_SETTINGS)
SECTION_DATA_PROLOGUE(_bt_settings_area, (OPTIONAL), SUBALIGN(4))
SECTION_DATA_PROLOGUE(_bt_settings_area,,SUBALIGN(4))
{
_bt_settings_start = .;
KEEP(*(SORT_BY_NAME("._bt_settings.static.*")))
@ -74,28 +74,28 @@
} GROUP_LINK_IN(ROMABLE_REGION)
#endif
SECTION_DATA_PROLOGUE(log_const_sections, (OPTIONAL),)
SECTION_DATA_PROLOGUE(log_const_sections,,)
{
__log_const_start = .;
KEEP(*(SORT(.log_const_*)));
__log_const_end = .;
} GROUP_LINK_IN(ROMABLE_REGION)
SECTION_DATA_PROLOGUE(log_backends_sections, (OPTIONAL),)
SECTION_DATA_PROLOGUE(log_backends_sections,,)
{
__log_backends_start = .;
KEEP(*(".log_backends"));
__log_backends_end = .;
} GROUP_LINK_IN(ROMABLE_REGION)
SECTION_DATA_PROLOGUE(shell_root_cmds_sections, (OPTIONAL),)
SECTION_DATA_PROLOGUE(shell_root_cmds_sections,,)
{
__shell_root_cmds_start = .;
KEEP(*(SORT(.shell_root_cmd_*)));
__shell_root_cmds_end = .;
} GROUP_LINK_IN(ROMABLE_REGION)
SECTION_DATA_PROLOGUE(font_entry_sections, (OPTIONAL),)
SECTION_DATA_PROLOGUE(font_entry_sections,,)
{
__font_entry_start = .;
KEEP(*(SORT_BY_NAME(".font_entry.*")))
@ -104,7 +104,7 @@
#ifdef CONFIG_COVERAGE_GCOV
/* Section needed by gcov when coverage is turned on.*/
SECTION_PROLOGUE (gcov, (OPTIONAL),)
SECTION_PROLOGUE (gcov,,)
{
PROVIDE_HIDDEN (__init_array_start = .);
KEEP (*(SORT(.init_array.*)))

View file

@ -21,7 +21,7 @@
* *and* the specific memory addresses being hashed. It is not something
* that can be predicted without actually building and compling it.
*/
SECTION_DATA_PROLOGUE(kobject_data, (OPTIONAL),)
SECTION_DATA_PROLOGUE(kobject_data,,)
{
*(".kobject_data.data*")

View file

@ -122,7 +122,6 @@
#endif
#define SORT_BY_NAME(x) SORT(x)
#define OPTIONAL
#define COMMON_SYMBOLS *(COMMON)

View file

@ -21,7 +21,7 @@
* *and* the specific memory addresses being hashed. It is not something
* that can be predicted without actually building and compling it.
*/
SECTION_DATA_PROLOGUE(priv_stacks, (OPTIONAL),)
SECTION_DATA_PROLOGUE(priv_stacks,,)
{
*(".priv_stacks.data*")

View file

@ -79,7 +79,7 @@ footer_template = """
"""
linker_start_seq = """
SECTION_PROLOGUE(_APP_SMEM_SECTION_NAME, (OPTIONAL),)
SECTION_PROLOGUE(_APP_SMEM_SECTION_NAME,,)
{
APP_SHARED_ALIGN;
_app_smem_start = .;

View file

@ -47,7 +47,7 @@ LINKER_SECTION_SEQ = """
/* Linker section for memory region {2} for {3} section */
SECTION_PROLOGUE(_{2}_{3}_SECTION_NAME, (OPTIONAL),)
SECTION_PROLOGUE(_{2}_{3}_SECTION_NAME,,)
{{
. = ALIGN(4);
{4}

View file

@ -15,7 +15,6 @@
* and ELF segment definitions
*/
#define SORT_BY_NAME(x) SORT(x)
#define OPTIONAL
#define SECTION_DATA_PROLOGUE(name, opts, align) name opts : align
#define SECTION_PROLOGUE(name, opts, align) name opts : align
#define GROUP_DATA_LINK_IN(v, l) :ram