1/* $OpenBSD: ld.script,v 1.4 2020/07/18 13:16:32 kettenis Exp $ */ 2 3/* 4 * Copyright (c) 2013 Mark Kettenis <kettenis@openbsd.org> 5 * 6 * Permission to use, copy, modify, and distribute this software for any 7 * purpose with or without fee is hereby granted, provided that the above 8 * copyright notice and this permission notice appear in all copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19ENTRY(_start) 20 21PHDRS 22{ 23 text PT_LOAD; 24 dynamic PT_DYNAMIC; 25 openbsd_randomize PT_OPENBSD_RANDOMIZE; 26} 27 28SECTIONS 29{ 30 . = 0x00100000; 31 .text : 32 { 33 *(.text) 34 } :text 35 PROVIDE (etext = .); 36 PROVIDE (_etext = .); 37 38 . = ALIGN(4096); 39 .rela.dyn : { *(.rela.dyn) } 40 41 .dynamic : 42 { 43 *(.dynamic) 44 } :dynamic :text 45 46 .rodata : 47 { 48 *(.rodata) 49 *(.data.rel.ro) 50 } :text 51 52 .openbsd.randomdata : 53 { 54 *(.openbsd.randomdata) 55 } :openbsd_randomize :text 56 PROVIDE (_erodata = .); 57 58 . = ALIGN(4096); 59 .data : 60 { 61 *(.data) 62 } :text 63 64 . = ALIGN(4096); 65 .got : { *(.got) } 66 .toc : { *(.toc) } 67 68 PROVIDE (__bss_start = .); 69 .bss : 70 { 71 *(.bss) 72 } 73 PROVIDE (end = .); 74 PROVIDE (_end = .); 75 76 /DISCARD/ : 77 { 78 *(.dynsym) 79 *(.dynstr) 80 *(.gnu.hash) 81 *(.hash) 82 } 83} 84