1/* $OpenBSD: ld.script,v 1.6 2019/11/09 20:07:00 guenther Exp $ */ 2 3/* 4 * Copyright (c) 2012 Miodrag Vallat. 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 19OUTPUT_FORMAT("elf32-m88k") 20OUTPUT_ARCH(m88k) 21ENTRY(__start) 22 23PHDRS 24{ 25 text PT_LOAD; 26 data PT_LOAD; 27 openbsd_randomize PT_OPENBSD_RANDOMIZE; 28} 29 30SECTIONS 31{ 32 .text : 33 { 34 *(.text) 35 PROVIDE(etext = ABSOLUTE(.)); 36 } 37 . = ALIGN(0x80000); 38 .rodata : 39 { 40 *(.rodata*) 41 PROVIDE(erodata = ABSOLUTE(.)); 42 } 43 . = ALIGN(0x80000); 44 .data : 45 { 46 *(.data) 47 } :data 48 .openbsd.randomdata : 49 { 50 /* XXX shouldn't this be placed next to rodata? */ 51 __retguard_start = ABSOLUTE(.); 52 *(.openbsd.randomdata.retguard .openbsd.randomdata.retguard.*) 53 /* XXX . = ALIGN(0x80000); */ 54 __retguard_end = ABSOLUTE(.); 55 *(.openbsd.randomdata .openbsd.randomdata.*) 56 } :data :openbsd_randomize 57 PROVIDE(edata = ABSOLUTE(.)); 58 .bss : 59 { 60 *(.bss) 61 } :data 62 PROVIDE(end = ABSOLUTE(.)); 63 /DISCARD/ : 64 { 65 *(.comment) 66 } 67} 68