/* GLD link script for building mac-compatible executables */

OUTPUT_FORMAT("coff-m68k")

SEARCH_DIR(@tooldir@/lib);
SEARCH_DIR(@libdir@);
SEARCH_DIR(/lib);
SEARCH_DIR(/usr/lib);
SEARCH_DIR(@local_prefix@/lib);

ENTRY(_start)

SECTIONS 
{
	.lowmem 0 (DSECT) : { 
		/usr/lib/low.o (.data)
	}
	.text 0x10000000 : {
		*(.text)
		*(.init)
		*(.fini)
		etext = .;
		_etext = .;
	}
	.data ALIGN(0x40000) : {
		*(.data)
		*(.ctors)
		*(.dtors)
		edata = .;
		_edata = .;
	}
	.bss : {
		*(.bss)
		*(COMMON)
		end = .;
		_end = .;
	}
}
