/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * Copyright (C) 2013-2014 Synopsys, Inc. All rights reserved.
 */

#include <config.h>

OUTPUT_FORMAT("elf32-littlearc", "elf32-bigarc", "elf32-littlearc")
OUTPUT_ARCH(arc)
ENTRY(_start)
SECTIONS
{
	. = CONFIG_TEXT_BASE;
	__image_copy_start = .;
	. = ALIGN(1024);
	__ivt_start = .;
	.ivt :
	{
		KEEP(*(.ivt))
	}
	__ivt_end = .;

	. = ALIGN(1024);
	__text_start = .;
	.text :	{
		arch/arc/lib/start.o (.text*)
		*(.text*)
	}
	__text_end = .;

	. = ALIGN(4);
	.rodata : {
		*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
	}

	. = ALIGN(4);
	.data : {
		*(.data*)
	}

	. = ALIGN(4);
	__u_boot_list : {
		KEEP(*(SORT(__u_boot_list*)));
	}

	. = ALIGN(4);
	__rel_dyn_start = .;
	.rela.dyn : {
		*(.rela.dyn)
	}
	__rel_dyn_end = .;

	. = ALIGN(4);
	__bss_start = .;
	.bss : {
		*(.bss*)
	}
	__bss_end = .;

	. = ALIGN(4);
	__image_copy_end = .;
	__init_end = .;
}
