]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Scripts/GccBase.lds
ShellPkg UefiDpLib: Fixed GCC build failure caused by ef22403
[mirror_edk2.git] / BaseTools / Scripts / GccBase.lds
1 /** @file
2
3 Unified linker script for GCC based builds
4
5 Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>
6 Copyright (c) 2015, Linaro Ltd. All rights reserved.<BR>
7 (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
8
9 This program and the accompanying materials are licensed and made available under
10 the terms and conditions of the BSD License that accompanies this distribution.
11 The full text of the license may be found at
12 http://opensource.org/licenses/bsd-license.php.
13
14 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
15 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16
17 **/
18
19 SECTIONS {
20
21 /*
22 * The PE/COFF binary consists of DOS and PE/COFF headers, and a sequence of
23 * section headers adding up to PECOFF_HEADER_SIZE bytes (which differs
24 * between 32-bit and 64-bit builds). The actual start of the .text section
25 * will be rounded up based on its actual alignment.
26 */
27 . = PECOFF_HEADER_SIZE;
28
29 .text : ALIGN(CONSTANT(COMMONPAGESIZE)) {
30 *(.text .text.* .stub .gnu.linkonce.t.*)
31 *(.rodata .rodata.* .gnu.linkonce.r.*)
32 *(.got .got.*)
33
34 /*
35 * The contents of AutoGen.c files are constant from the POV of the program,
36 * but most of its contents end up in .data or .bss by default since few of
37 * the variable definitions that get emitted are declared as CONST.
38 */
39 *:AutoGen.obj(.data .data.* .bss .bss.*)
40 }
41
42 /*
43 * The alignment of the .data section should be less than or equal to the
44 * alignment of the .text section. This ensures that the relative offset
45 * between these sections is the same in the ELF and the PE/COFF versions of
46 * this binary.
47 */
48 .data ALIGN(ALIGNOF(.text)) : ALIGN(CONSTANT(COMMONPAGESIZE)) {
49 *(.data .data.* .gnu.linkonce.d.*)
50 *(.bss .bss.*)
51 }
52
53 .eh_frame ALIGN(CONSTANT(COMMONPAGESIZE)) : {
54 KEEP (*(.eh_frame))
55 }
56
57 .rela (INFO) : {
58 *(.rela .rela.*)
59 }
60
61 .hii : ALIGN(CONSTANT(COMMONPAGESIZE)) {
62 KEEP (*(.hii))
63 }
64
65 /*
66 * Retain the GNU build id but in a non-allocatable section so GenFw
67 * does not copy it into the PE/COFF image.
68 */
69 .build-id (INFO) : { *(.note.gnu.build-id) }
70
71 /DISCARD/ : {
72 *(.note.GNU-stack)
73 *(.gnu_debuglink)
74 *(.interp)
75 *(.dynsym)
76 *(.dynstr)
77 *(.dynamic)
78 *(.hash)
79 *(.comment)
80 *(COMMON)
81 }
82 }