From ad83f0cc13928b8d465e7bc39edb28666570dc18 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Mon, 12 Dec 2005 11:16:41 +0000 Subject: Rename ms1 files to mt files (part 1 -- renames only) --- include/elf/ms1.h | 46 - include/elf/mt.h | 46 + libgloss/ms1/16-002.ld | 248 ----- libgloss/ms1/16-003.ld | 258 ----- libgloss/ms1/64-001.ld | 282 ----- libgloss/ms1/Makefile.in | 127 --- libgloss/ms1/access.c | 33 - libgloss/ms1/chmod.c | 11 - libgloss/ms1/close.c | 11 - libgloss/ms1/configure | 1204 ---------------------- libgloss/ms1/configure.in | 90 -- libgloss/ms1/crt0-16-002.S | 111 -- libgloss/ms1/crt0-16-003.S | 112 -- libgloss/ms1/crt0-64-001.S | 144 --- libgloss/ms1/crt0.S | 63 -- libgloss/ms1/exit-16-002.c | 12 - libgloss/ms1/exit-16-003.c | 12 - libgloss/ms1/exit-64-001.c | 12 - libgloss/ms1/exit.c | 10 - libgloss/ms1/fstat.c | 14 - libgloss/ms1/getpid.c | 10 - libgloss/ms1/gettime.c | 12 - libgloss/ms1/isatty.c | 11 - libgloss/ms1/kill.c | 11 - libgloss/ms1/lseek.c | 14 - libgloss/ms1/open.c | 11 - libgloss/ms1/read.c | 12 - libgloss/ms1/sbrk.c | 24 - libgloss/ms1/startup-16-002.S | 628 ------------ libgloss/ms1/startup-16-003.S | 838 --------------- libgloss/ms1/startup-64-001.S | 378 ------- libgloss/ms1/stat.c | 12 - libgloss/ms1/time.c | 11 - libgloss/ms1/times.c | 12 - libgloss/ms1/trap.S | 34 - libgloss/ms1/trap.h | 5 - libgloss/ms1/unlink.c | 11 - libgloss/ms1/utime.c | 13 - libgloss/ms1/write.c | 13 - libgloss/mt/16-002.ld | 248 +++++ libgloss/mt/16-003.ld | 258 +++++ libgloss/mt/64-001.ld | 282 +++++ libgloss/mt/Makefile.in | 127 +++ libgloss/mt/access.c | 33 + libgloss/mt/chmod.c | 11 + libgloss/mt/close.c | 11 + libgloss/mt/configure | 1204 ++++++++++++++++++++++ libgloss/mt/configure.in | 90 ++ libgloss/mt/crt0-16-002.S | 111 ++ libgloss/mt/crt0-16-003.S | 112 ++ libgloss/mt/crt0-64-001.S | 144 +++ libgloss/mt/crt0.S | 63 ++ libgloss/mt/exit-16-002.c | 12 + libgloss/mt/exit-16-003.c | 12 + libgloss/mt/exit-64-001.c | 12 + libgloss/mt/exit.c | 10 + libgloss/mt/fstat.c | 14 + libgloss/mt/getpid.c | 10 + libgloss/mt/gettime.c | 12 + libgloss/mt/isatty.c | 11 + libgloss/mt/kill.c | 11 + libgloss/mt/lseek.c | 14 + libgloss/mt/open.c | 11 + libgloss/mt/read.c | 12 + libgloss/mt/sbrk.c | 24 + libgloss/mt/startup-16-002.S | 628 ++++++++++++ libgloss/mt/startup-16-003.S | 838 +++++++++++++++ libgloss/mt/startup-64-001.S | 378 +++++++ libgloss/mt/stat.c | 12 + libgloss/mt/time.c | 11 + libgloss/mt/times.c | 12 + libgloss/mt/trap.S | 34 + libgloss/mt/trap.h | 5 + libgloss/mt/unlink.c | 11 + libgloss/mt/utime.c | 13 + libgloss/mt/write.c | 13 + newlib/libc/machine/ms1/Makefile.am | 12 - newlib/libc/machine/ms1/Makefile.in | 327 ------ newlib/libc/machine/ms1/aclocal.m4 | 366 ------- newlib/libc/machine/ms1/configure | 1880 ---------------------------------- newlib/libc/machine/ms1/configure.in | 12 - newlib/libc/machine/ms1/setjmp.S | 99 -- newlib/libc/machine/mt/Makefile.am | 12 + newlib/libc/machine/mt/Makefile.in | 327 ++++++ newlib/libc/machine/mt/aclocal.m4 | 366 +++++++ newlib/libc/machine/mt/configure | 1880 ++++++++++++++++++++++++++++++++++ newlib/libc/machine/mt/configure.in | 12 + newlib/libc/machine/mt/setjmp.S | 99 ++ 88 files changed, 7556 insertions(+), 7556 deletions(-) delete mode 100644 include/elf/ms1.h create mode 100644 include/elf/mt.h delete mode 100644 libgloss/ms1/16-002.ld delete mode 100644 libgloss/ms1/16-003.ld delete mode 100644 libgloss/ms1/64-001.ld delete mode 100644 libgloss/ms1/Makefile.in delete mode 100644 libgloss/ms1/access.c delete mode 100644 libgloss/ms1/chmod.c delete mode 100644 libgloss/ms1/close.c delete mode 100755 libgloss/ms1/configure delete mode 100644 libgloss/ms1/configure.in delete mode 100644 libgloss/ms1/crt0-16-002.S delete mode 100644 libgloss/ms1/crt0-16-003.S delete mode 100644 libgloss/ms1/crt0-64-001.S delete mode 100644 libgloss/ms1/crt0.S delete mode 100644 libgloss/ms1/exit-16-002.c delete mode 100644 libgloss/ms1/exit-16-003.c delete mode 100644 libgloss/ms1/exit-64-001.c delete mode 100644 libgloss/ms1/exit.c delete mode 100644 libgloss/ms1/fstat.c delete mode 100644 libgloss/ms1/getpid.c delete mode 100644 libgloss/ms1/gettime.c delete mode 100644 libgloss/ms1/isatty.c delete mode 100644 libgloss/ms1/kill.c delete mode 100644 libgloss/ms1/lseek.c delete mode 100644 libgloss/ms1/open.c delete mode 100644 libgloss/ms1/read.c delete mode 100644 libgloss/ms1/sbrk.c delete mode 100644 libgloss/ms1/startup-16-002.S delete mode 100644 libgloss/ms1/startup-16-003.S delete mode 100644 libgloss/ms1/startup-64-001.S delete mode 100644 libgloss/ms1/stat.c delete mode 100644 libgloss/ms1/time.c delete mode 100644 libgloss/ms1/times.c delete mode 100644 libgloss/ms1/trap.S delete mode 100644 libgloss/ms1/trap.h delete mode 100644 libgloss/ms1/unlink.c delete mode 100644 libgloss/ms1/utime.c delete mode 100644 libgloss/ms1/write.c create mode 100644 libgloss/mt/16-002.ld create mode 100644 libgloss/mt/16-003.ld create mode 100644 libgloss/mt/64-001.ld create mode 100644 libgloss/mt/Makefile.in create mode 100644 libgloss/mt/access.c create mode 100644 libgloss/mt/chmod.c create mode 100644 libgloss/mt/close.c create mode 100755 libgloss/mt/configure create mode 100644 libgloss/mt/configure.in create mode 100644 libgloss/mt/crt0-16-002.S create mode 100644 libgloss/mt/crt0-16-003.S create mode 100644 libgloss/mt/crt0-64-001.S create mode 100644 libgloss/mt/crt0.S create mode 100644 libgloss/mt/exit-16-002.c create mode 100644 libgloss/mt/exit-16-003.c create mode 100644 libgloss/mt/exit-64-001.c create mode 100644 libgloss/mt/exit.c create mode 100644 libgloss/mt/fstat.c create mode 100644 libgloss/mt/getpid.c create mode 100644 libgloss/mt/gettime.c create mode 100644 libgloss/mt/isatty.c create mode 100644 libgloss/mt/kill.c create mode 100644 libgloss/mt/lseek.c create mode 100644 libgloss/mt/open.c create mode 100644 libgloss/mt/read.c create mode 100644 libgloss/mt/sbrk.c create mode 100644 libgloss/mt/startup-16-002.S create mode 100644 libgloss/mt/startup-16-003.S create mode 100644 libgloss/mt/startup-64-001.S create mode 100644 libgloss/mt/stat.c create mode 100644 libgloss/mt/time.c create mode 100644 libgloss/mt/times.c create mode 100644 libgloss/mt/trap.S create mode 100644 libgloss/mt/trap.h create mode 100644 libgloss/mt/unlink.c create mode 100644 libgloss/mt/utime.c create mode 100644 libgloss/mt/write.c delete mode 100644 newlib/libc/machine/ms1/Makefile.am delete mode 100644 newlib/libc/machine/ms1/Makefile.in delete mode 100644 newlib/libc/machine/ms1/aclocal.m4 delete mode 100755 newlib/libc/machine/ms1/configure delete mode 100644 newlib/libc/machine/ms1/configure.in delete mode 100644 newlib/libc/machine/ms1/setjmp.S create mode 100644 newlib/libc/machine/mt/Makefile.am create mode 100644 newlib/libc/machine/mt/Makefile.in create mode 100644 newlib/libc/machine/mt/aclocal.m4 create mode 100755 newlib/libc/machine/mt/configure create mode 100644 newlib/libc/machine/mt/configure.in create mode 100644 newlib/libc/machine/mt/setjmp.S diff --git a/include/elf/ms1.h b/include/elf/ms1.h deleted file mode 100644 index 1cb7ad6ee..000000000 --- a/include/elf/ms1.h +++ /dev/null @@ -1,46 +0,0 @@ -/* MS1 ELF support for BFD. - Copyright (C) 2000, 2005 Free Software Foundation, Inc. - -This file is part of BFD, the Binary File Descriptor library. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software Foundation, Inc., -59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifndef _ELF_MS1_H -#define _ELF_MS1_H - -#include "elf/reloc-macros.h" - -/* Relocations. */ -START_RELOC_NUMBERS (elf_ms1_reloc_type) - RELOC_NUMBER (R_MS1_NONE, 0) - RELOC_NUMBER (R_MS1_16, 1) - RELOC_NUMBER (R_MS1_32, 2) - RELOC_NUMBER (R_MS1_32_PCREL, 3) - RELOC_NUMBER (R_MS1_PC16, 4) - RELOC_NUMBER (R_MS1_HI16, 5) - RELOC_NUMBER (R_MS1_LO16, 6) -END_RELOC_NUMBERS(R_MS1_max) - -#define EF_MS1_CPU_MRISC 0x00000001 /* default */ -#define EF_MS1_CPU_MRISC2 0x00000002 /* MRISC2 */ -#define EF_MS1_CPU_MS2 0x00000003 /* MS2 */ -#define EF_MS1_CPU_MASK 0x00000003 /* specific cpu bits */ -#define EF_MS1_ALL_FLAGS (EF_MS1_CPU_MASK) - -/* The location of the memory mapped hardware stack. */ -#define MS1_STACK_VALUE 0x0f000000 -#define MS1_STACK_SIZE 0x20 - -#endif /* _ELF_MS1_H */ diff --git a/include/elf/mt.h b/include/elf/mt.h new file mode 100644 index 000000000..1cb7ad6ee --- /dev/null +++ b/include/elf/mt.h @@ -0,0 +1,46 @@ +/* MS1 ELF support for BFD. + Copyright (C) 2000, 2005 Free Software Foundation, Inc. + +This file is part of BFD, the Binary File Descriptor library. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef _ELF_MS1_H +#define _ELF_MS1_H + +#include "elf/reloc-macros.h" + +/* Relocations. */ +START_RELOC_NUMBERS (elf_ms1_reloc_type) + RELOC_NUMBER (R_MS1_NONE, 0) + RELOC_NUMBER (R_MS1_16, 1) + RELOC_NUMBER (R_MS1_32, 2) + RELOC_NUMBER (R_MS1_32_PCREL, 3) + RELOC_NUMBER (R_MS1_PC16, 4) + RELOC_NUMBER (R_MS1_HI16, 5) + RELOC_NUMBER (R_MS1_LO16, 6) +END_RELOC_NUMBERS(R_MS1_max) + +#define EF_MS1_CPU_MRISC 0x00000001 /* default */ +#define EF_MS1_CPU_MRISC2 0x00000002 /* MRISC2 */ +#define EF_MS1_CPU_MS2 0x00000003 /* MS2 */ +#define EF_MS1_CPU_MASK 0x00000003 /* specific cpu bits */ +#define EF_MS1_ALL_FLAGS (EF_MS1_CPU_MASK) + +/* The location of the memory mapped hardware stack. */ +#define MS1_STACK_VALUE 0x0f000000 +#define MS1_STACK_SIZE 0x20 + +#endif /* _ELF_MS1_H */ diff --git a/libgloss/ms1/16-002.ld b/libgloss/ms1/16-002.ld deleted file mode 100644 index 65efb8578..000000000 --- a/libgloss/ms1/16-002.ld +++ /dev/null @@ -1,248 +0,0 @@ -OUTPUT_FORMAT("elf32-ms1", "elf32-ms1", "elf32-ms1") -OUTPUT_ARCH(ms1) -ENTRY(__boot_start) -SEARCH_DIR(/usr/local/mrisc1-elf/lib) -/* Do we need any of these for elf? - __DYNAMIC = 0; */ -MEMORY -{ - ram (rwx) : ORIGIN = 0x0, LENGTH = 128K - frame-buffer (w) : ORIGIN = 0xde0000, LENGTH = 40K - ports (w) : ORIGIN = 0xfff000, LENGTH = 4K - dma-ram (w) : ORIGIN = 0x1000000, LENGTH = 16M-4K -} -SECTIONS -{ - /* Read-only sections, merged into text segment: */ - . = 0x0; - PROVIDE(__executable_start = 0x0); - .interp : { *(.interp) } - .hash : { *(.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - .rel.init : { *(.rel.init) } - .rela.init : { *(.rela.init) } - .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } - .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } - .rel.fini : { *(.rel.fini) } - .rela.fini : { *(.rela.fini) } - .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } - .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } - .rel.data.rel.ro : { *(.rel.data.rel.ro*) } - .rela.data.rel.ro : { *(.rela.data.rel.ro*) } - .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } - .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } - .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } - .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } - .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } - .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } - .rel.ctors : { *(.rel.ctors) } - .rela.ctors : { *(.rela.ctors) } - .rel.dtors : { *(.rel.dtors) } - .rela.dtors : { *(.rela.dtors) } - .rel.got : { *(.rel.got) } - .rela.got : { *(.rela.got) } - .rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) } - .rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) } - .rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) } - .rela.sbss : { *(.rela.sbss .rela.sbss.* .rel.gnu.linkonce.sb.*) } - .rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) } - .rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) } - .rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) } - .rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) } - .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } - .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } - .rel.plt : { *(.rel.plt) } - .rela.plt : { *(.rela.plt) } - - .startup : { *startup-16-002.o(.startup) } >ram =0 - . = 0x40 ; - - .init : { KEEP (*(.init)) } >ram =0 - .plt : { *(.plt) } >ram - .text : - { - *startup-16-002.o(.text) - *(.text .stub .text.* .gnu.linkonce.t.*) - KEEP (*(.text.*personality*)) - /* .gnu.warning sections are handled specially by elf32.em. */ - *(.gnu.warning) - } >ram =0 - .fini : { KEEP (*(.fini)) } >ram =0 - PROVIDE (__etext = .); - PROVIDE (_etext = .); - PROVIDE (etext = .); - .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } >ram - .rodata1 : { *(.rodata1) } >ram - .sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } >ram - .sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } >ram - .eh_frame_hdr : { *(.eh_frame_hdr) } >ram - .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } >ram - .gcc_except_table : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >ram - /* Adjust the address for the data segment. We want to adjust up to - the same address within the page on the next page up. */ - . = ALIGN(256) + (. & (256 - 1)); - /* Exception handling */ - .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } >ram - .gcc_except_table : ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >ram - /* Thread Local Storage sections */ - .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } >ram - .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >ram - /* Ensure the __preinit_array_start label is properly aligned. We - could instead move the label definition inside the section, but - the linker would then create the section even if it turns out to - be empty, which isn't pretty. */ - . = ALIGN(32 / 8); - PROVIDE (__preinit_array_start = .); - .preinit_array : { *(.preinit_array) } >ram - PROVIDE (__preinit_array_end = .); - PROVIDE (__init_array_start = .); - .init_array : { *(.init_array) } >ram - PROVIDE (__init_array_end = .); - PROVIDE (__fini_array_start = .); - .fini_array : { *(.fini_array) } >ram - PROVIDE (__fini_array_end = .); - .ctors : - { - /* gcc uses crtbegin.o to find the start of - the constructors, so we make sure it is - first. Because this is a wildcard, it - doesn't matter if the user does not - actually link against crtbegin.o; the - linker won't look for a file to match a - wildcard. The wildcard also means that it - doesn't matter which directory crtbegin.o - is in. */ - KEEP (*crtbegin.o(.ctors)) - /* We don't want to include the .ctor section from - from the crtend.o file until after the sorted ctors. - The .ctor section from the crtend file contains the - end of ctors marker and it must be last */ - KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) - } >ram - .dtors : - { - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) - } >ram - .jcr : { KEEP (*(.jcr)) } >ram - .data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) } >ram - .dynamic : { *(.dynamic) } >ram - - /* DJK - Re-align the data section from the read-only section. */ - . = ALIGN(16) + (. & (16 - 1)); - PROVIDE (_data = .); - .data : - { - *(.data .data.* .gnu.linkonce.d.*) - SORT(CONSTRUCTORS) - } >ram - .data1 : { *(.data1) } >ram - .got : { *(.got.plt) *(.got) } >ram - - /* We want the small data sections together, so single-instruction offsets - can access them all, and initialized data all before uninitialized, so - we can shorten the on-disk segment size. */ - .sdata : { *(.sdata .sdata.* .gnu.linkonce.s.*) } >ram - _edata = .; - PROVIDE ( edata = . ) ; - .sbss : - { - PROVIDE (__sbss_start = .); - PROVIDE (___sbss_start = .); - *(.dynsbss) - *(.sbss .sbss.* .gnu.linkonce.sb.*) - *(.scommon) - PROVIDE (__sbss_end = .); - PROVIDE (___sbss_end = .); - } >ram - .bss : - { - *(.dynbss) - *(.bss .bss.* .gnu.linkonce.b.*) - *(COMMON) - /* Align here to ensure that the .bss section occupies space up to - _end. Align after .bss to ensure correct alignment even if the - .bss section disappears because there are no input sections. */ - . = ALIGN(32 / 8); - } >ram - . = ALIGN(32 / 8); - __bss_start = ADDR ( .sbss ) ; - __bss_end = __bss_start + SIZEOF ( .sbss ) + SIZEOF ( .bss ) - 4 ; - _end = .; - PROVIDE (end = .); - - /* DJK - Initialized frame buffer data is copied from RAM to FB. */ - .auxbss : AT (ADDR(.bss) + SIZEOF(.bss)) { *(.auxbss) } >frame-buffer - .auxdata : AT (LOADADDR(.auxbss) + SIZEOF(.auxbss)) - { - *(.auxdata) - } >frame-buffer - - _fbbss_start = ADDR ( .auxbss ); - _fbbss_end = _fbbss_start + SIZEOF ( .auxbss ) - 4; - _fbdata_start = LOADADDR ( .auxdata ); - _fbdata_end = _fbdata_start + SIZEOF ( .auxdata ) ; - _fbdata_vma = ADDR ( .auxdata ); - - PROVIDE (__FRAME_BUFFER_START = ADDR(.auxbss) ); - PROVIDE (__FRAME_BUFFER_SIZE = 0xa000); - PROVIDE (__FRAME_BUFFER_END = __FRAME_BUFFER_START + __FRAME_BUFFER_SIZE); - - .dma : { _dma_start = .; *(.dma) _dma_end = .; } >dma-ram - .internal_io (NOLOAD) : { *(.internal_io) } >ports - - /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } - - /* In a multi-core environment, each core is given its own stack space - equal to __stack_size. */ - PROVIDE (__stack = 0x1fff0); - PROVIDE (__stack_size = 0x800); - - .stack (DEFINED(__stack) ? __stack : 0x007ffff0) : - { - __stack = .; - *(.stack) - LONG(0xdeaddead) - } - /DISCARD/ : { *(.note.GNU-stack) } -} diff --git a/libgloss/ms1/16-003.ld b/libgloss/ms1/16-003.ld deleted file mode 100644 index 9da0fe556..000000000 --- a/libgloss/ms1/16-003.ld +++ /dev/null @@ -1,258 +0,0 @@ -OUTPUT_FORMAT("elf32-ms1", "elf32-ms1", "elf32-ms1") -OUTPUT_ARCH(ms1) -ENTRY(__boot_start) -SEARCH_DIR(/usr/local/mrisc1-elf/lib) -/* Do we need any of these for elf? - __DYNAMIC = 0; */ -MEMORY -{ - ram (rwx) : ORIGIN = 0x0, LENGTH = 608K - frame-buffer (w) : ORIGIN = 0xff000000, LENGTH = 80K - dma-ram (w) : ORIGIN = 0x1000000, LENGTH = 16M-4K - ports (w) : ORIGIN = 0xfffff000, LENGTH = 4K -} -SECTIONS -{ - /* Read-only sections, merged into text segment: */ - . = 0x0; - PROVIDE(__executable_start = 0x0); - .interp : { *(.interp) } - .hash : { *(.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - .rel.init : { *(.rel.init) } - .rela.init : { *(.rela.init) } - .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } - .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } - .rel.fini : { *(.rel.fini) } - .rela.fini : { *(.rela.fini) } - .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } - .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } - .rel.data.rel.ro : { *(.rel.data.rel.ro*) } - .rela.data.rel.ro : { *(.rela.data.rel.ro*) } - .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } - .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } - .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } - .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } - .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } - .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } - .rel.ctors : { *(.rel.ctors) } - .rela.ctors : { *(.rela.ctors) } - .rel.dtors : { *(.rel.dtors) } - .rela.dtors : { *(.rela.dtors) } - .rel.got : { *(.rel.got) } - .rela.got : { *(.rela.got) } - .rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) } - .rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) } - .rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) } - .rela.sbss : { *(.rela.sbss .rela.sbss.* .rel.gnu.linkonce.sb.*) } - .rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) } - .rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) } - .rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) } - .rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) } - .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } - .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } - .rel.plt : { *(.rel.plt) } - .rela.plt : { *(.rela.plt) } - - .startup : { *startup-16-003.o(.startup) } >ram =0 - . = 0x40; - - .init : { KEEP (*(.init)) } >ram =0 - .plt : { *(.plt) } >ram - .text : - { - *startup-16-003.o(.text); - *(.text .stub .text.* .gnu.linkonce.t.*) - KEEP (*(.text.*personality*)) - /* .gnu.warning sections are handled specially by elf32.em. */ - *(.gnu.warning) - } >ram =0 - .fini : { KEEP (*(.fini)) } >ram =0 - PROVIDE (__etext = .); - PROVIDE (_etext = .); - PROVIDE (etext = .); - .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } >ram - .rodata1 : { *(.rodata1) } >ram - .sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } >ram - .sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } >ram - .eh_frame_hdr : { *(.eh_frame_hdr) } >ram - .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } >ram - .gcc_except_table : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >ram - /* Adjust the address for the data segment. We want to adjust up to - the same address within the page on the next page up. */ - . = ALIGN(256) + (. & (256 - 1)); - /* Exception handling */ - .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } >ram - .gcc_except_table : ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >ram - /* Thread Local Storage sections */ - .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } >ram - .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >ram - /* Ensure the __preinit_array_start label is properly aligned. We - could instead move the label definition inside the section, but - the linker would then create the section even if it turns out to - be empty, which isn't pretty. */ - . = ALIGN(32 / 8); - PROVIDE (__preinit_array_start = .); - .preinit_array : { *(.preinit_array) } >ram - PROVIDE (__preinit_array_end = .); - PROVIDE (__init_array_start = .); - .init_array : { *(.init_array) } >ram - PROVIDE (__init_array_end = .); - PROVIDE (__fini_array_start = .); - .fini_array : { *(.fini_array) } >ram - PROVIDE (__fini_array_end = .); - .ctors : - { - /* gcc uses crtbegin.o to find the start of - the constructors, so we make sure it is - first. Because this is a wildcard, it - doesn't matter if the user does not - actually link against crtbegin.o; the - linker won't look for a file to match a - wildcard. The wildcard also means that it - doesn't matter which directory crtbegin.o - is in. */ - KEEP (*crtbegin.o(.ctors)) - /* We don't want to include the .ctor section from - from the crtend.o file until after the sorted ctors. - The .ctor section from the crtend file contains the - end of ctors marker and it must be last */ - KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) - } >ram - .dtors : - { - KEEP (*crtbegin*.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) - } >ram - .jcr : { KEEP (*(.jcr)) } >ram - .data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) } >ram - .dynamic : { *(.dynamic) } >ram - - /* DJK - Re-align the data section from the read-only section. */ - . = ALIGN(16) + (. & (16 - 1)); - PROVIDE (_data = .); - .data : - { - *(.data .data.* .gnu.linkonce.d.*) - KEEP (*(.gnu.linkonce.d.*personality*)) - SORT(CONSTRUCTORS) - } >ram - .data1 : { *(.data1) } >ram - .got : { *(.got.plt) *(.got) } >ram - - /* We want the small data sections together, so single-instruction offsets - can access them all, and initialized data all before uninitialized, so - we can shorten the on-disk segment size. */ - .sdata : { *(.sdata .sdata.* .gnu.linkonce.s.*) } >ram - _edata = .; - PROVIDE ( edata = . ); - .sbss : - { - PROVIDE (__sbss_start = .); - PROVIDE (___sbss_start = .); - *(.dynsbss) - *(.sbss .sbss.* .gnu.linkonce.sb.*) - *(.scommon) - PROVIDE (__sbss_end = .); - PROVIDE (___sbss_end = .); - } >ram - .bss : - { - *(.dynbss) - *(.bss .bss.* .gnu.linkonce.b.*) - *(COMMON) - /* Align here to ensure that the .bss section occupies space up to - _end. Align after .bss to ensure correct alignment even if the - .bss section disappears because there are no input sections. */ - . = ALIGN(32 / 8); - } >ram - . = ALIGN(32 / 8); - __bss_start = ADDR ( .sbss ) ; - __bss_end = __bss_start + SIZEOF ( .sbss ) + SIZEOF ( .bss ) - 4 ; - _end = .; - PROVIDE (end = .); - - /* DJK - Initialized frame buffer data is copied from RAM to FB. */ - .auxbss : AT (ADDR(.bss) + SIZEOF(.bss)) { *(.auxbss) } >frame-buffer - .auxdata : AT (LOADADDR(.auxbss) + SIZEOF(.auxbss)) - { - *(.auxdata.bank0) - . = ALIGN(0x4000); - *(.auxdata.bank1) - . = ALIGN(0x4000); - *(.auxdata.bank2) - . = ALIGN(0x4000); - *(.auxdata.bank3) - . = ALIGN(0x4000); - *(.auxdata.bank4) - *(.auxdata) - } >frame-buffer - - _fbbss_start = ADDR ( .auxbss ); - _fbbss_end = _fbbss_start + SIZEOF ( .auxbss ) - 4; - _fbdata_start = LOADADDR ( .auxdata ); - _fbdata_end = _fbdata_start + SIZEOF ( .auxdata ) ; - _fbdata_vma = ADDR ( .auxdata ); - - PROVIDE (__FRAME_BUFFER_START = ADDR(.auxbss) ); - PROVIDE (__FRAME_BUFFER_SIZE = 0x14000); - PROVIDE (__FRAME_BUFFER_END = __FRAME_BUFFER_START + __FRAME_BUFFER_SIZE); - - .dma : { _dma_start = .; *(.dma) _dma_end = .; } >dma-ram - .internal_io (NOLOAD) : { *(.internal_io) } >ports - - /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } - - /* In a multi-core environment, each core is given its own stack space - equal to __stack_size, growing downwards. */ - PROVIDE (__stack = 0x97ff0); - PROVIDE (__stack_size = 0x800); - - .stack (DEFINED(__stack) ? __stack : 0x007ffff0) : - { - __stack = .; - *(.stack) - LONG(0xdeaddead) - } - /DISCARD/ : { *(.note.GNU-stack) } -} diff --git a/libgloss/ms1/64-001.ld b/libgloss/ms1/64-001.ld deleted file mode 100644 index f8a8ca054..000000000 --- a/libgloss/ms1/64-001.ld +++ /dev/null @@ -1,282 +0,0 @@ -OUTPUT_FORMAT("elf32-ms1", "elf32-ms1", "elf32-ms1") -OUTPUT_ARCH(ms1) -ENTRY(__boot_start) -SEARCH_DIR(/usr/local/mrisc1-elf/lib); -/* Do we need any of these for elf? - __DYNAMIC = 0; */ -MEMORY -{ - rom (rx) : ORIGIN = 0x000000, LENGTH = 8M - frame-buffer (w) : ORIGIN = 0x800000, LENGTH = 64K - ram (w) : ORIGIN = 0xc00000, LENGTH = 4M - dma-ram (w) : ORIGIN = 0x1000000, LENGTH = 16M -} -SECTIONS -{ - /* Read-only sections, merged into text segment: */ - PROVIDE (__executable_start = 0x0); . = 0x0; - .interp : { *(.interp) } - .hash : { *(.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - .rel.init : { *(.rel.init) } - .rela.init : { *(.rela.init) } - .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } - .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } - .rel.fini : { *(.rel.fini) } - .rela.fini : { *(.rela.fini) } - .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } - .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } - .rel.data.rel.ro : { *(.rel.data.rel.ro*) } - .rela.data.rel.ro : { *(.rel.data.rel.ro*) } - .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } - .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } - .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } - .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } - .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } - .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } - .rel.ctors : { *(.rel.ctors) } - .rela.ctors : { *(.rela.ctors) } - .rel.dtors : { *(.rel.dtors) } - .rela.dtors : { *(.rela.dtors) } - .rel.got : { *(.rel.got) } - .rela.got : { *(.rela.got) } - .rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) } - .rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) } - .rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) } - .rela.sbss : { *(.rela.sbss .rela.sbss.* .rel.gnu.linkonce.sb.*) } - .rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) } - .rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) } - .rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) } - .rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) } - .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } - .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } - .rel.plt : { *(.rel.plt) } - .rela.plt : { *(.rela.plt) } - - .startup : { *startup-64-001.o(.startup) } >rom =0 - - .init : { KEEP (*(.init)) } >rom =0 - .plt : { *(.plt) } >rom - .text : - { - *startup-64-001.o(.text) - *(.text .stub .text.* .gnu.linkonce.t.*) - /* .gnu.warning sections are handled specially by elf32.em. */ - *(.gnu.warning) - } >rom =0 - .fini : - { - KEEP (*(.fini)) - } >rom =0 - PROVIDE (__etext = .); - PROVIDE (_etext = .); - PROVIDE (etext = .); - .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } >rom - .rodata1 : { *(.rodata1) } >rom - - /* Data starting here needs to be copied from ROM to the frame buffer. */ - /* Section .sdata2 is used as the beginning marker of the frame buffer - address as well as the start of the data that needs to be copied. */ - .sdata2 : AT (ADDR(.rodata1) + SIZEOF(.rodata1)) - { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } >frame-buffer - .sbss2 : AT (LOADADDR(.sdata2) + SIZEOF(.sdata2)) - { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } >frame-buffer - .eh_frame_hdr : AT (LOADADDR(.sbss2) + SIZEOF(.sbss2)) - { *(.eh_frame_hdr) } >frame-buffer - .eh_frame : AT (LOADADDR(.eh_frame_hdr) + SIZEOF(.eh_frame_hdr)) - ONLY_IF_RO { KEEP (*(.eh_frame)) } >frame-buffer - .gcc_except_table : AT (LOADADDR(.eh_frame) + SIZEOF(.eh_frame)) - ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >frame-buffer - /* Adjust the address for the data segment. We want to adjust up to - the same address within the page on the next page up. */ - . = ALIGN(256) + (. & (256 - 1)); - /* Exception handling */ - .eh_frame : AT (LOADADDR(.eh_frame_hdr) + SIZEOF(.eh_frame_hdr)) - ONLY_IF_RW { KEEP (*(.eh_frame)) } >frame-buffer - .gcc_except_table : AT (LOADADDR(.eh_frame) + SIZEOF(.eh_frame)) - ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >frame-buffer - /* Thread Local Storage sections */ - .tdata : AT (LOADADDR(.gcc_except_table) + SIZEOF(.gcc_except_table)) - { *(.tdata .tdata.* .gnu.linkonce.td.*) } >frame-buffer - .tbss : AT (LOADADDR(.tdata) + SIZEOF(.tdata)) - { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >frame-buffer - /* Ensure the __preinit_array_start label is properly aligned. We - could instead move the label definition inside the section, but - the linker would then create the section even if it turns out to - be empty, which isn't pretty. */ - . = ALIGN(32 / 8); - PROVIDE (__preinit_array_start = .); - .preinit_array : AT (LOADADDR(.tbss) + SIZEOF(.tbss)) - { *(.preinit_array) } >frame-buffer - PROVIDE (__preinit_array_end = .); - PROVIDE (__init_array_start = .); - .init_array : AT (LOADADDR(.preinit_array) + SIZEOF(.preinit_array)) - { *(.init_array) } >frame-buffer - PROVIDE (__init_array_end = .); - PROVIDE (__fini_array_start = .); - .fini_array : AT (LOADADDR(.init_array) + SIZEOF(.init_array)) - { *(.fini_array) } >frame-buffer - PROVIDE (__fini_array_end = .); - .ctors : AT (LOADADDR(.fini_array) + SIZEOF(.fini_array)) - { - /* gcc uses crtbegin.o to find the start of - the constructors, so we make sure it is - first. Because this is a wildcard, it - doesn't matter if the user does not - actually link against crtbegin.o; the - linker won't look for a file to match a - wildcard. The wildcard also means that it - doesn't matter which directory crtbegin.o - is in. */ - KEEP (*crtbegin*.o(.ctors)) - /* We don't want to include the .ctor section from - from the crtend.o file until after the sorted ctors. - The .ctor section from the crtend file contains the - end of ctors marker and it must be last */ - KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) - } >frame-buffer - .dtors : AT (LOADADDR(.ctors) + SIZEOF(.ctors)) - { - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) - } >frame-buffer - .jcr : AT (LOADADDR(.dtors) + SIZEOF(.dtors)) - { KEEP (*(.jcr)) } >frame-buffer - .data.rel.ro : AT (LOADADDR(.jcr) + SIZEOF(.jcr)) - { *(.data.rel.ro.local) *(.data.rel.ro*) } >frame-buffer - .dynamic : AT (LOADADDR(.data.rel.ro) + SIZEOF(.data.rel.ro)) - { *(.dynamic) } >frame-buffer - - /* DJK - Re-align the data section from the read-only section. */ - . = ALIGN(16) + (. & (16 - 1)); - PROVIDE (_data = .); - .data : AT (LOADADDR(.dynamic) + SIZEOF(.dynamic)) - { - *(.data .data.* .gnu.linkonce.d.*) - KEEP (*(.gnu.linkonce.d.*personality*)) - SORT(CONSTRUCTORS) - } >frame-buffer - .data1 : AT (LOADADDR(.data) + SIZEOF(.data)) - { *(.data1) } >frame-buffer - .got : AT (LOADADDR(.data1) + SIZEOF(.data1)) - { *(.got.plt) *(.got) } - - /* We want the small data sections together, so single-instruction offsets - can access them all, and initialized data all before uninitialized, so - we can shorten the on-disk segment size. */ - .sdata : AT (LOADADDR(.got) + SIZEOF(.got)) - { *(.sdata .sdata.* .gnu.linkonce.s.*) } >frame-buffer - _edata = .; - PROVIDE ( edata = . ) ; - - _fbdata_start = LOADADDR(.sdata2) ; - _fbdata_end = LOADADDR(.sdata) + SIZEOF(.sdata) - 4 ; - - PROVIDE (__FRAME_BUFFER_START = ADDR(.sdata2)); - PROVIDE (__FRAME_BUFFER_SIZE = 0x10000); - PROVIDE (__FRAME_BUFFER_END = __FRAME_BUFFER_START + __FRAME_BUFFER_SIZE); - - .sbss : AT (LOADADDR(.sdata) + SIZEOF(.sdata)) - { - PROVIDE (__sbss_start = .); - PROVIDE (___sbss_start = .); - *(.dynsbss) - *(.sbss .sbss.* .gnu.linkonce.sb.*) - *(.scommon) - PROVIDE (__sbss_end = .); - PROVIDE (___sbss_end = .); - } >frame-buffer - .bss : AT (LOADADDR(.sbss) + SIZEOF(.sbss)) - { - *(.dynbss) - *(.bss .bss.* .gnu.linkonce.b.*) - *(COMMON) - /* Align here to ensure that the .bss section occupies space up to - _end. Align after .bss to ensure correct alignment even if the - .bss section disappears because there are no input sections. */ - . = ALIGN(32 / 8); - } >frame-buffer - . = ALIGN(32 / 8); - __bss_start = ADDR(.sbss) ; - __bss_end = __bss_start + SIZEOF(.sbss) + SIZEOF(.bss) - 4 ; - _end = .; - PROVIDE (end = .); - - PROVIDE ( _extdata_start = ADDR(.bss) + SIZEOF(.bss)); - .extdata : AT ( LOADADDR(.bss) + SIZEOF(.bss)) - { - *(.extdata) - } >ram - PROVIDE (_extdata_end = _extdata_start + SIZEOF(.extdata) - 4 ); - - .extbss : AT ( LOADADDR(.extdata) + SIZEOF(.extdata)) - { - _extbss_start = .; - *(.extbss); - . = ALIGN(4); - _extbss_end = .; - } >ram - . = ALIGN(4); - - PROVIDE (__EXTERNAL_MEMORY_START = 0xc00000); - - .dma : - { - _dma_start = .; - *(.dma) - _dma_end = .; - } >dma-ram - - /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } - - - PROVIDE (__stack = 0x80fff0); - - .stack (DEFINED(__stack) ? __stack : 0x7FFFF0) : - { - __stack = .; - *(.stack) - LONG(0xdeaddead) - } - /DISCARD/ : { *(.note.GNU-stack) } -} diff --git a/libgloss/ms1/Makefile.in b/libgloss/ms1/Makefile.in deleted file mode 100644 index e2fd1f838..000000000 --- a/libgloss/ms1/Makefile.in +++ /dev/null @@ -1,127 +0,0 @@ -# Copyright (c) 2001 Red Hat, Inc. -# -# The authors hereby grant permission to use, copy, modify, distribute, -# and license this software and its documentation for any purpose, provided -# that existing copyright notices are retained in all copies and that this -# notice is included verbatim in any distributions. No written agreement, -# license, or royalty fee is required for any of the authorized uses. -# Modifications to this software may be copyrighted by their authors -# and need not follow the licensing terms described here, provided that -# the new terms are clearly indicated on the first page of each file where -# they apply. - -# Makefile for libgloss/ms1. This is the board support for the Morpho ms1. - -VPATH = @srcdir@ @srcdir@/.. -srcdir = @srcdir@ -objdir = . -srcroot = $(srcdir)/../.. -objroot = $(objdir)/../.. - -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -host_alias = @host_alias@ -target_alias = @target_alias@ - -bindir = @bindir@ -libdir = @libdir@ -tooldir = $(exec_prefix)/$(target_alias) - -# Multilib support variables. -# TOP is used instead of MULTI{BUILD,SRC}TOP. -MULTIDIRS = -MULTISUBDIR = -MULTIDO = true -MULTICLEAN = true - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ - -SHELL = /bin/sh - -CC = @CC@ - -AS = @AS@ -AR = @AR@ -LD = @LD@ -RANLIB = @RANLIB@ -AR_FLAGS = rc - -OBJDUMP = `if [ -f ${objroot}/../binutils/objdump ] ; \ - then echo ${objroot}/../binutils/objdump ; \ - else t='$(program_transform_name)'; echo objdump | sed -e $$t ; fi` -OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \ - then echo ${objroot}/../binutils/objcopy ; \ - else t='$(program_transform_name)'; echo objcopy | sed -e $$t ; fi` - -SCRIPTS = 16-002.ld 16-003.ld 64-001.ld -CRT0 = crt0.o crt0-64-001.o crt0-16-002.o crt0-16-003.o \ - startup-64-001.o startup-16-002.o startup-16-003.o \ - exit.o exit-64-001.o exit-16-002.o exit-16-003.o - -SIM_BSP = libsim.a -SIM_OBJS = access.o chmod.o close.o \ - fstat.o getpid.o gettime.o isatty.o kill.o lseek.o open.o \ - read.o sbrk.o stat.o time.o times.o trap.o unlink.o utime.o write.o - -#### Host specific Makefile fragment comes in here. -@host_makefile_frag@ - -all: $(CRT0) $(SIM_BSP) - -$(SIM_BSP): $(SIM_OBJS) - $(AR) $(ARFLAGS) $@ $? - $(RANLIB) $@ - -access.o: $(srcdir)/access.c -chmod.o: $(srcdir)/chmod.c -close.o: $(srcdir)/close.c -fstat.o: $(srcdir)/fstat.c -getpid.o: $(srcdir)/getpid.c -gettime.o: $(srcdir)/gettime.c -isatty.o: $(srcdir)/isatty.c -kill.o: $(srcdir)/kill.c -lseek.o: $(srcdir)/lseek.c -open.o: $(srcdir)/open.c -read.o: $(srcdir)/read.c -sbrk.o: $(srcdir)/sbrk.c -stat.o: $(srcdir)/stat.c -time.o: $(srcdir)/time.c -times.o: $(srcdir)/times.c -unlink.o: $(srcdir)/unlink.c -utime.o: $(srcdir)/utime.c -write.o: $(srcdir)/write.c -crt0.o: $(srcdir)/crt0.S -crt0-16-002.o: $(srcdir)/crt0-16-002.S -crt0-16-003.o: $(srcdir)/crt0-16-003.S -crt0-64-001.o: $(srcdir)/crt0-64-001.S - -trap.o: $(srcdir)/trap.S - -install: $($(CPU)_INSTALL) - for c in $(CRT0); do \ - $(INSTALL_DATA) $$c $(tooldir)/lib${MULTISUBDIR}/$$c ; \ - done; - $(INSTALL_DATA) $(SIM_BSP) $(tooldir)/lib${MULTISUBDIR}/$(SIM_BSP) - for c in $(SCRIPTS); do \ - $(INSTALL_DATA) $(srcdir)/$$c $(tooldir)/lib/$$c ; \ - done; - -clean mostlyclean: - rm -f *.o *.a - -distclean maintainer-clean realclean: clean - rm -f Makefile config.cache config.log config.status - -.PHONY: info dvi doc install-info clean-info -info doc dvi: -install-info: -clean-info: - -Makefile: Makefile.in config.status @host_makefile_frag_path@ - $(SHELL) config.status - -config.status: configure - $(SHELL) config.status --recheck diff --git a/libgloss/ms1/access.c b/libgloss/ms1/access.c deleted file mode 100644 index 8e08b3a7f..000000000 --- a/libgloss/ms1/access.c +++ /dev/null @@ -1,33 +0,0 @@ -/* This is file ACCESS.C */ -/* - * Copyright (C) 1993 DJ Delorie - * All rights reserved. - * - * Redistribution and use in source and binary forms is permitted - * provided that the above copyright notice and following paragraph are - * duplicated in all such forms. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -#include -#include -#include - -int access(const char *fn, int flags) -{ - struct stat s; - if (stat(fn, &s)) - return -1; - if (s.st_mode & S_IFDIR) - return 0; - if (flags & W_OK) - { - if (s.st_mode & S_IWRITE) - return 0; - return -1; - } - return 0; -} - diff --git a/libgloss/ms1/chmod.c b/libgloss/ms1/chmod.c deleted file mode 100644 index 8200506fe..000000000 --- a/libgloss/ms1/chmod.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" - - -int -chmod (const char *path, mode_t mode) -{ - return TRAP0 (SYS_chmod, path, mode, 0); -} diff --git a/libgloss/ms1/close.c b/libgloss/ms1/close.c deleted file mode 100644 index 02ee07287..000000000 --- a/libgloss/ms1/close.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" - - -int -close (int file) -{ - return TRAP0 (SYS_close, file, 0, 0); -} diff --git a/libgloss/ms1/configure b/libgloss/ms1/configure deleted file mode 100755 index 5d272c9f8..000000000 --- a/libgloss/ms1/configure +++ /dev/null @@ -1,1204 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -ac_max_here_lines=12 - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.13" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=crt0.S - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -ac_exeext= -ac_objext=o -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - -if test "${enable_shared}" = "yes" ; then - echo "Shared libraries not supported for cross compiling, ignored" -fi - -if test "$srcdir" = "." ; then - if test "${with_target_subdir}" != "." ; then - libgloss_topdir="${srcdir}/${with_multisrctop}../../.." - else - libgloss_topdir="${srcdir}/${with_multisrctop}../.." - fi -else - libgloss_topdir="${srcdir}/../.." -fi -ac_aux_dir= -for ac_dir in $libgloss_topdir $srcdir/$libgloss_topdir; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in $libgloss_topdir $srcdir/$libgloss_topdir" 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - - -# Do some error checking and defaulting for the host and target type. -# The inputs are: -# configure --host=HOST --target=TARGET --build=BUILD NONOPT -# -# The rules are: -# 1. You are not allowed to specify --host, --target, and nonopt at the -# same time. -# 2. Host defaults to nonopt. -# 3. If nonopt is not specified, then host defaults to the current host, -# as determined by config.guess. -# 4. Target and build default to nonopt. -# 5. If nonopt is not specified, then target and build default to host. - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -case $host---$target---$nonopt in -NONE---*---* | *---NONE---* | *---*---NONE) ;; -*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; -esac - - -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } -fi - -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:587: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:608: checking target system type" >&5 - -target_alias=$target -case "$target_alias" in -NONE) - case $nonopt in - NONE) target_alias=$host_alias ;; - *) target_alias=$nonopt ;; - esac ;; -esac - -target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` -target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$target" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:626: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 - -test "$host_alias" != "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - -if test "$program_transform_name" = s,x,x,; then - program_transform_name= -else - # Double any \ or $. echo might interpret backslashes. - cat <<\EOF_SED > conftestsed -s,\\,\\\\,g; s,\$,$$,g -EOF_SED - program_transform_name="`echo $program_transform_name|sed -f conftestsed`" - rm -f conftestsed -fi -test "$program_prefix" != NONE && - program_transform_name="s,^,${program_prefix},; $program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" - -# sed with no file args requires a program. -test "$program_transform_name" = "" && program_transform_name="s,x,x," - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:680: checking for a BSD compatible install" >&5 -if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi -fi -echo "$ac_t""$INSTALL" 1>&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - -# FIXME: We temporarily define our own version of AC_PROG_CC. This is -# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We -# are probably using a cross compiler, which will not be able to fully -# link an executable. This should really be fixed in autoconf -# itself. - - - -# Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:744: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:774: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_prog_rejected=no - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - break - fi - done - IFS="$ac_save_ifs" -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" "$@" - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:823: checking whether we are using GNU C" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi -fi - -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 - -if test $ac_cv_prog_gcc = yes; then - GCC=yes - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:847: checking whether ${CC-cc} accepts -g" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_cc_g=yes -else - ac_cv_prog_cc_g=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi - - -AS=${AS-as} - -AR=${AR-ar} - -LD=${LD-ld} - -# Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:884: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_RANLIB="ranlib" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" -fi -fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -host_makefile_frag=${srcdir}/../config/default.mh - -host_makefile_frag_path=$host_makefile_frag - - - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs - - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir -ac_given_INSTALL="$INSTALL" - -trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@FFLAGS@%$FFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@host@%$host%g -s%@host_alias@%$host_alias%g -s%@host_cpu@%$host_cpu%g -s%@host_vendor@%$host_vendor%g -s%@host_os@%$host_os%g -s%@target@%$target%g -s%@target_alias@%$target_alias%g -s%@target_cpu@%$target_cpu%g -s%@target_vendor@%$target_vendor%g -s%@target_os@%$target_os%g -s%@build@%$build%g -s%@build_alias@%$build_alias%g -s%@build_cpu@%$build_cpu%g -s%@build_vendor@%$build_vendor%g -s%@build_os@%$build_os%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g -s%@INSTALL_DATA@%$INSTALL_DATA%g -s%@CC@%$CC%g -s%@AS@%$AS%g -s%@AR@%$AR%g -s%@LD@%$LD%g -s%@RANLIB@%$RANLIB%g -s%@host_makefile_frag_path@%$host_makefile_frag_path%g -/@host_makefile_frag@/r $host_makefile_frag -s%@host_makefile_frag@%%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -. ${libgloss_topdir}/config-ml.in -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - diff --git a/libgloss/ms1/configure.in b/libgloss/ms1/configure.in deleted file mode 100644 index 877f6a06e..000000000 --- a/libgloss/ms1/configure.in +++ /dev/null @@ -1,90 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_PREREQ(2.5)dnl -AC_INIT(crt0.S) - -if test "${enable_shared}" = "yes" ; then - echo "Shared libraries not supported for cross compiling, ignored" -fi - -if test "$srcdir" = "." ; then - if test "${with_target_subdir}" != "." ; then - libgloss_topdir="${srcdir}/${with_multisrctop}../../.." - else - libgloss_topdir="${srcdir}/${with_multisrctop}../.." - fi -else - libgloss_topdir="${srcdir}/../.." -fi -AC_CONFIG_AUX_DIR($libgloss_topdir) - -AC_CANONICAL_SYSTEM -AC_ARG_PROGRAM - -AC_PROG_INSTALL - -# FIXME: We temporarily define our own version of AC_PROG_CC. This is -# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We -# are probably using a cross compiler, which will not be able to fully -# link an executable. This should really be fixed in autoconf -# itself. - -AC_DEFUN(LIB_AC_PROG_CC, -[AC_BEFORE([$0], [AC_PROG_CPP])dnl -AC_CHECK_PROG(CC, gcc, gcc) -if test -z "$CC"; then - AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) - test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) -fi - -AC_PROG_CC_GNU - -if test $ac_cv_prog_gcc = yes; then - GCC=yes -dnl Check whether -g works, even if CFLAGS is set, in case the package -dnl plays around with CFLAGS (such as to build both debugging and -dnl normal versions of a library), tasteless as that idea is. - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - AC_PROG_CC_G - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi -]) - -LIB_AC_PROG_CC - -AS=${AS-as} -AC_SUBST(AS) -AR=${AR-ar} -AC_SUBST(AR) -LD=${LD-ld} -AC_SUBST(LD) -AC_PROG_RANLIB - -host_makefile_frag=${srcdir}/../config/default.mh - -dnl We have to assign the same value to other variables because autoconf -dnl doesn't provide a mechanism to substitute a replacement keyword with -dnl arbitrary data or pathnames. -dnl -host_makefile_frag_path=$host_makefile_frag -AC_SUBST(host_makefile_frag_path) -AC_SUBST_FILE(host_makefile_frag) - -AC_OUTPUT(Makefile, -. ${libgloss_topdir}/config-ml.in, -srcdir=${srcdir} -target=${target} -ac_configure_args="${ac_configure_args} --enable-multilib" -CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} -libgloss_topdir=${libgloss_topdir} -) diff --git a/libgloss/ms1/crt0-16-002.S b/libgloss/ms1/crt0-16-002.S deleted file mode 100644 index ac2727e66..000000000 --- a/libgloss/ms1/crt0-16-002.S +++ /dev/null @@ -1,111 +0,0 @@ -; crt0_2.s - Startup code for the mrisc1. This code initializes the C -; run-time model. -; -; Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -; -; The authors hereby grant permission to use, copy, modify, distribute, -; and license this software and its documentation for any purpose, provided -; that existing copyright notices are retained in all copies and that this -; notice is included verbatim in any distributions. No written agreement, -; license, or royalty fee is required for any of the authorized uses. -; Modifications to this software may be copyrighted by their authors -; and need not follow the licensing terms described here, provided that -; the new terms are clearly indicated on the first page of each file where -; they apply. -; - - ; Create a label for the start of the eh_frame section. - .section .eh_frame -__eh_frame_begin: - - .text - .global _start -_start: - ;; Initialize the stack pointer - ldui sp, #%hi16(__stack) - addui sp, sp, #%lo16(__stack) - or fp, sp, sp - ;; Zero the bss space - ldui r9, #%hi16(__bss_start) - addui r9, r9, #%lo16(__bss_start) - ldui r10, #%hi16(__bss_end) - addui r10, r10, #%lo16(__bss_end) - or r0, r0, r0 - brle r10, r9, .Lnext1 - or r0, r0, r0 -.Lcpy0: - stw r0, r9, #0 - addi r9, r9, #4 - or r0, r0, r0 ; nop - brle r9, r10, .Lcpy0 - or r0, r0, r0 ; nop - -.Lnext1: - ;; Copy data from ROM to Frame Buffer (on-chip memory) - ldui r9, #%hi16(_fbdata_start) - ori r9, r9, #%lo16(_fbdata_start) - ldui r10, #%hi16(_fbdata_end) - ori r10, r10, #%lo16(_fbdata_end) - ldui r11, #%hi16(_fbdata_vma) - brle r10, r9, .Lnext2 - ori r11, r11, #%lo16(_fbdata_vma) -.Lcpy1: - ldw r5, r9, #$0 - addi r9, r9, #$4 - stw r5, r11, #$0 - brlt r9, r10, .Lcpy1 - addi r11, r11, #$4 - -.Lnext2: - ;; Zero the frame buffer bss section - ldui r9, #%hi16(_fbbss_start) - ori r9, r9, #%lo16(_fbbss_start) - ldui r10, #%hi16(_fbbss_end) - ori r10, r10, #%lo16(_fbbss_end) - or r0, r0, r0 - brle r10, r9, .Lnext3 - or r0, r0, r0 -.Lcpy2: - stw r0, r9, #$0 - addi r9, r9, #$4 - or r0, r0, r0 - brle r9, r10, .Lcpy2 - or r0, r0, r0 - -.Lnext3: - ;; Call global and static constructors - ldui r10, #%hi16(_init) - ori r10, r10, #%lo16(_init) - or r0, r0, r0 ; nop - jal r14, r10 - or r0, r0, r0 ; nop - - ;; Call main - ldui r10, #%hi16(main) - ori r10, r10, #%lo16(main) - or r0, r0, r0 ; nop - jal r14, r10 - or r0, r0, r0 ; nop - - ;; DJK - Added 12Nov01. Pass main's return value to exit. - or r1, r11, r0 - - ;; Jump to exit - ldui r10, #%hi16(exit) - ori r10, r10, #%lo16(exit) - or r0, r0, r0 ; nop - jal r14, r10 - or r0, r0, r0 ; nop - - ;; Exit does not return, however, this code is to catch an - ;; error if it does. Set the processor into sleep mode. - ori r1, r0, #$1 - stw r1, r0, #%lo16(_DEBUG_HALT_REG) - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 -.Lend: - jmp .Lend - or r0, r0, r0 diff --git a/libgloss/ms1/crt0-16-003.S b/libgloss/ms1/crt0-16-003.S deleted file mode 100644 index bd88bcc54..000000000 --- a/libgloss/ms1/crt0-16-003.S +++ /dev/null @@ -1,112 +0,0 @@ -; crt0.s - Startup code for the mrisc1. This code initializes the C -; run-time model. -; -; -; Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -; -; The authors hereby grant permission to use, copy, modify, distribute, -; and license this software and its documentation for any purpose, provided -; that existing copyright notices are retained in all copies and that this -; notice is included verbatim in any distributions. No written agreement, -; license, or royalty fee is required for any of the authorized uses. -; Modifications to this software may be copyrighted by their authors -; and need not follow the licensing terms described here, provided that -; the new terms are clearly indicated on the first page of each file where -; they apply. -; - - ; Create a label for the start of the eh_frame section. - .section .eh_frame -__eh_frame_begin: - - .text - .global _start -_start: - ;; Initialize the stack pointer - ldui sp, #%hi16(__stack) - addui sp, sp, #%lo16(__stack) - or fp, sp, sp - ;; Zero the bss space - ldui r9, #%hi16(__bss_start) - addui r9, r9, #%lo16(__bss_start) - ldui r10, #%hi16(__bss_end) - addui r10, r10, #%lo16(__bss_end) - or r0, r0, r0 - brle r10, r9, .Lnext1 - or r0, r0, r0 -.Lcpy0: - stw r0, r9, #0 - addi r9, r9, #4 - or r0, r0, r0 ; nop - brle r9, r10, .Lcpy0 - or r0, r0, r0 ; nop - -.Lnext1: - ;; Copy data from ROM to Frame Buffer (on-chip memory) - ldui r9, #%hi16(_fbdata_start) - ori r9, r9, #%lo16(_fbdata_start) - ldui r10, #%hi16(_fbdata_end) - ori r10, r10, #%lo16(_fbdata_end) - ldui r11, #%hi16(_fbdata_vma) - brle r10, r9, .Lnext2 - ori r11, r11, #%lo16(_fbdata_vma) -.Lcpy1: - ldw r5, r9, #$0 - addi r9, r9, #$4 - stw r5, r11, #$0 - brlt r9, r10, .Lcpy1 - addi r11, r11, #$4 - -.Lnext2: - ;; Zero the frame buffer bss section - ldui r9, #%hi16(_fbbss_start) - ori r9, r9, #%lo16(_fbbss_start) - ldui r10, #%hi16(_fbbss_end) - ori r10, r10, #%lo16(_fbbss_end) - or r0, r0, r0 - brle r10, r9, .Lnext3 - or r0, r0, r0 -.Lcpy2: - stw r0, r9, #$0 - addi r9, r9, #$4 - or r0, r0, r0 - brle r9, r10, .Lcpy2 - or r0, r0, r0 - -.Lnext3: - ;; Call global and static constructors - ldui r10, #%hi16(_init) - ori r10, r10, #%lo16(_init) - or r0, r0, r0 ; nop - jal r14, r10 - or r0, r0, r0 ; nop - - ;; Call main - ldui r10, #%hi16(main) - ori r10, r10, #%lo16(main) - or r0, r0, r0 ; nop - jal r14, r10 - or r0, r0, r0 ; nop - - ;; DJK - Added 12Nov01. Pass main's return value to exit. - or r1, r11, r0 - - ;; Jump to exit - ldui r10, #%hi16(exit) - ori r10, r10, #%lo16(exit) - or r0, r0, r0 ; nop - jal r14, r10 - or r0, r0, r0 ; nop - - ;; Exit does not return, however, this code is to catch an - ;; error if it does. Set the processor into sleep mode. - ori r1, r0, #$1 - stw r1, r0, #%lo16(_DEBUG_HALT_REG) - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 -.Lend: - jmp .Lend - or r0, r0, r0 diff --git a/libgloss/ms1/crt0-64-001.S b/libgloss/ms1/crt0-64-001.S deleted file mode 100644 index b78e7808e..000000000 --- a/libgloss/ms1/crt0-64-001.S +++ /dev/null @@ -1,144 +0,0 @@ -; crt0_2.s - Startup code for the mrisc1. This code initializes the C -; run-time model. -; -; 12Nov01 (DJK) - The return code from main was not being passed to exit(). -; Now it is passed as a parameter in R1. -; -; 10Sep01 (DJK) - The function exit() does not return. However, in the -; the case of device error (if the halt bit does not -; function properly, for instance), then a catch loop -; has been added. -; -; -; Copyright 2001, 2002, 2003, 2004 Morpho Technologies, Inc. -; - - ; Create a label for the start of the eh_frame section. - .section .eh_frame -__eh_frame_begin: - - .equ HALT_REG, 0x300 - .section .text - .global _start -_start: - ;; Initialize the stack pointer - ldui sp, #%hi16(__stack) - addui sp, sp, #%lo16(__stack) - or fp, sp, sp - - ;; Copy data from ROM to Frame Buffer (on-chip memory) - ldui r9, #%hi16(_fbdata_start) - ori r9, r9, #%lo16(_fbdata_start) - ldui r10, #%hi16(_fbdata_end) - ori r10, r10, #%lo16(_fbdata_end) - ldui r11, #%hi16(__FRAME_BUFFER_START) - brle r10, r9, .Lnext1 - ori r11, r11, #%lo16(__FRAME_BUFFER_START) -.Lcpy0: - ldw r5, r9, #$0 - addi r9, r9, #$4 - stw r5, r11, #$0 - brlt r9, r10, .Lcpy0 - addi r11, r11, #$4 - -.Lnext1: - ;; Copy data from ROM to External Memory (off-chip memory) - ldui r9, #%hi16(_extdata_start) - ori r9, r9, #%lo16(_extdata_start) - ldui r10, #%hi16(_extdata_end) - ori r10, r10, #%lo16(_extdata_end) - ldui r11, #%hi16(__EXTERNAL_MEMORY_START) - brle r10, r9, .Lnext2 - ori r11, r11, #%lo16(__EXTERNAL_MEMORY_START) -.Lcpy1: - ldw r5, r9, #$0 - addi r9, r9, #$4 - stw r5, r11, #$0 - brlt r9, r10, .Lcpy1 - addi r11, r11, #$4 - - -.Lnext2: - ;; Zero the bss space - ldui r9, #%hi16(__bss_start) - addui r9, r9, #%lo16(__bss_start) - ldui r10, #%hi16(__bss_end) - addui r10, r10, #%lo16(__bss_end) - or r0, r0, r0 - brle r10, r9, .Lnext3 - or r0, r0, r0 -.Lcpy2: - stw r0, r9, #0 - addi r9, r9, #4 - or r0, r0, r0 ; nop - brle r9, r10, .Lcpy2 - or r0, r0, r0 ; nop - -.Lnext3: - ;; Zero the external memory bss section - ldui r9, #%hi16(_extbss_start) - ori r9, r9, #%lo16(_extbss_start) - ldui r10, #%hi16(_extbss_end) - ori r10, r10, #%lo16(_extbss_end) - or r0, r0, r0 - brle r10, r9, .Lnext4 - or r0, r0, r0 -.Lcpy3: - stw r0, r9, #$0 - addi r9, r9, #$4 - or r0, r0, r0 - brle r9, r10, .Lcpy3 - or r0, r0, r0 - -.Lnext4: - ;; Call global and static constructors - ldui r10, #%hi16(_init) - ori r10, r10, #%lo16(_init) - or r0, r0, r0 ; nop - jal r14, r10 - or r0, r0, r0 ; nop - - ;; Setup destructors to be called from exit. - ;; (Just in case main never returns....) - ldui r10, #%hi16(atexit) - ori r10, r10, #%lo16(atexit) - ldui r1, #%hi16(_fini) - ori r1, r1, #%lo16(_fini) - or r0, r0, r0 ; nop - jal r14, r10 - or r0, r0, r0 ; nop - - ;; Initialise argc, argv and envp to empty - addi r1, r0, #0 - addi r2, r0, #0 - addi r3, r0, #0 - - ;; Call main - ldui r10, #%hi16(main) - ori r10, r10, #%lo16(main) - or r0, r0, r0 ; nop - jal r14, r10 - or r0, r0, r0 ; nop - - ;; DJK - Added 12Nov01. Pass main's return value to exit. - or r1, r11, r0 - - ;; Jump to exit - ldui r10, #%hi16(exit) - ori r10, r10, #%lo16(exit) - or r0, r0, r0 ; nop - jal r14, r10 - or r0, r0, r0 ; nop - - ;; Exit does not return, however, this code is to catch an - ;; error if it does. Set the processor into sleep mode. - ori r1, r0, #$1 - stw r1, r0, #HALT_REG - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 -.Lend: - jmp .Lend - or r0, r0, r0 diff --git a/libgloss/ms1/crt0.S b/libgloss/ms1/crt0.S deleted file mode 100644 index 276124f5c..000000000 --- a/libgloss/ms1/crt0.S +++ /dev/null @@ -1,63 +0,0 @@ -# Startup Code for the Morpho ms1 - -# Create a label for the start of the eh_frame section. - .section .eh_frame -__eh_frame_begin: - - .section .text - .global _start -_start: - - ;; Initialise the stack pointer - ldui sp, #%hi16(__stack) - addui sp, sp, #%lo16(__stack) - or fp, sp, sp - - ;; Zero the data space - ldui r9, #%hi16(_edata) - addui r9, r9, #%lo16(_edata) - ldui r10, #%hi16(_end) - addui r10, r10, #%lo16(_end) - addi r5, r0, #0 - -.L0: - stw r5, r9, #0 - addi r9, r9, #4 - or r0, r0, r0 ; nop - brle r9, r10, .L0 - or r0, r0, r0 ; nop - - ;; Call global and static constructors - ldui r10, #%hi16(_init) - addui r10, r10, #%lo16(_init) - or r0, r0, r0 ; nop - jal r14, r10 - or r0, r0, r0 ; nop - ;; Setup destructors to be called from exit. - ;; (Just in case main never returns....) - ldui r10, #%hi16(atexit) - addui r10, r10, #%lo16(atexit) - ldui r1, #%hi16(_fini) - addui r1, r1, #%lo16(_fini) - or r0, r0, r0 ; nop - jal r14, r10 - or r0, r0, r0 ; nop - - ;; Initialise argc, argv and envp to empty - addi r1, r0, #0 - addi r2, r0, #0 - addi r3, r0, #0 - - ;; Call main - ldui r10, #%hi16(main) - addui r10, r10, #%lo16(main) - or r0, r0, r0 ; nop - jal r14, r10 - or r0, r0, r0 ; nop - - ;; Jump to exit - ldui r10, #%hi16(exit) - addui r10, r10, #%lo16(exit) - or r0, r0, r0 ; nop - jal r14, r10 - or r0, r0, r0 ; nop diff --git a/libgloss/ms1/exit-16-002.c b/libgloss/ms1/exit-16-002.c deleted file mode 100644 index ba048d977..000000000 --- a/libgloss/ms1/exit-16-002.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <_ansi.h> -#include -#include - - -void _exit (n) -{ - /* Set bit #0 in the _DEBUG_HALT_REG to trigger program exit to - the simulator. (The simulator will return a SIGQUIT signal.) */ - asm("ori r1, r0, #$1\n"); - asm("stw r1, r0, #$fffff300\n"); -} diff --git a/libgloss/ms1/exit-16-003.c b/libgloss/ms1/exit-16-003.c deleted file mode 100644 index ba048d977..000000000 --- a/libgloss/ms1/exit-16-003.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <_ansi.h> -#include -#include - - -void _exit (n) -{ - /* Set bit #0 in the _DEBUG_HALT_REG to trigger program exit to - the simulator. (The simulator will return a SIGQUIT signal.) */ - asm("ori r1, r0, #$1\n"); - asm("stw r1, r0, #$fffff300\n"); -} diff --git a/libgloss/ms1/exit-64-001.c b/libgloss/ms1/exit-64-001.c deleted file mode 100644 index 97c7b8ce7..000000000 --- a/libgloss/ms1/exit-64-001.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <_ansi.h> -#include -#include - - -void _exit (n) -{ - /* Set bit #0 in the _DEBUG_HALT_REG to trigger program exit to - the simulator. (The simulator will return a SIGQUIT signal.) */ - asm("ori r1, r0, #$1\n"); - asm("stw r1, r0, #$300\n"); -} diff --git a/libgloss/ms1/exit.c b/libgloss/ms1/exit.c deleted file mode 100644 index cc7983b3f..000000000 --- a/libgloss/ms1/exit.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" - - -void _exit (n) -{ - TRAP0 (SYS_exit, n, 0, 0); -} diff --git a/libgloss/ms1/fstat.c b/libgloss/ms1/fstat.c deleted file mode 100644 index 1d7d2dcf5..000000000 --- a/libgloss/ms1/fstat.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" - - -int -fstat (int file, - struct stat *st) -{ - st->st_mode = S_IFCHR; - st->st_blksize = 4096; - return 0; -} diff --git a/libgloss/ms1/getpid.c b/libgloss/ms1/getpid.c deleted file mode 100644 index 8d686b86a..000000000 --- a/libgloss/ms1/getpid.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" - - -getpid (n) -{ - return 1; -} diff --git a/libgloss/ms1/gettime.c b/libgloss/ms1/gettime.c deleted file mode 100644 index 1a0426744..000000000 --- a/libgloss/ms1/gettime.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" -#include "sys/time.h" - - -int -_gettimeofday (struct timeval *tp, void *tzp) -{ - return TRAP0 (SYS_gettimeofday, tp, tzp, 0); -} diff --git a/libgloss/ms1/isatty.c b/libgloss/ms1/isatty.c deleted file mode 100644 index 0930a531e..000000000 --- a/libgloss/ms1/isatty.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" - - -isatty (fd) - int fd; -{ - return 1; -} diff --git a/libgloss/ms1/kill.c b/libgloss/ms1/kill.c deleted file mode 100644 index e8ea43769..000000000 --- a/libgloss/ms1/kill.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" - - -kill (n, m) -{ - return TRAP0 (SYS_exit, 0xdead, 0, 0); -} - diff --git a/libgloss/ms1/lseek.c b/libgloss/ms1/lseek.c deleted file mode 100644 index 783909104..000000000 --- a/libgloss/ms1/lseek.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <_ansi.h> -#include -#include -#include -#include "trap.h" - - -off_t -lseek (int file, - off_t ptr, - int dir) -{ - return TRAP0 (SYS_lseek, file, ptr, dir); -} diff --git a/libgloss/ms1/open.c b/libgloss/ms1/open.c deleted file mode 100644 index d727bdd9f..000000000 --- a/libgloss/ms1/open.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" - - -int -open (const char *path, int flags, int mode) -{ - return TRAP0 (SYS_open, path, flags, mode); -} diff --git a/libgloss/ms1/read.c b/libgloss/ms1/read.c deleted file mode 100644 index e7f37fafa..000000000 --- a/libgloss/ms1/read.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" - - -read (int file, - char *ptr, - size_t len) -{ - return TRAP0 (SYS_read, file, ptr, len); -} diff --git a/libgloss/ms1/sbrk.c b/libgloss/ms1/sbrk.c deleted file mode 100644 index 1f959c084..000000000 --- a/libgloss/ms1/sbrk.c +++ /dev/null @@ -1,24 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" - - -caddr_t -sbrk (size_t incr) -{ - extern char end; /* Defined by the linker */ - static char *heap_end; - char *prev_heap_end; - - char *sp = (char *) &sp; - - if (heap_end == 0) - { - heap_end = &end; - } - prev_heap_end = heap_end; - heap_end += incr; - - return (caddr_t) prev_heap_end; -} diff --git a/libgloss/ms1/startup-16-002.S b/libgloss/ms1/startup-16-002.S deleted file mode 100644 index 475a120bd..000000000 --- a/libgloss/ms1/startup-16-002.S +++ /dev/null @@ -1,628 +0,0 @@ -/* - * interrupt_vectors.s -- the interrupt handler jump table. - * - * - * There are a total of 32 interrupt vector possible, however, only - * 11 of those are currently used (the others are reserved). The - * order of vectors is as follows: - * - * 1. Boot Vector. Vector for power-on/reset. - * 2. Software Vector. Vector for handling the SI instruction (an - * explicit interrupt caused by software). - * 3. Break Vector. Vector for handling the Break instruction. - * 4. Device 0 Vector. Service vector for device zero. - * 5. Device 1 Vector. Service vector for device one. - * 6. Device 2 Vector. Service vector for device two. - * 7. Device 3 Vector. Service vector for device three. - * 8. Device 4 Vector. Service vector for device four. - * 9. Device 5 Vector. Service vector for device five. - * 10. Device 6 Vector. Service vector for device six. - * 11. Device 7 Vector. Service vector for device seven. - * - * The rest of the interrupt vectors are reserved for future use. - * - * - * Each jump table entry consists of the following two instructions: - * - * jmp Label ; Label as appropriate - * nop ; implemented as or r0,r0,r0 - * - * The following labels are reserved for the vectors named above, - * respectively: - * - * _BOOTIVEC, _SOFTIVEC, _BRKIVEC, _DEV0IVEC, _DEV1IVEC, _DEV2IVEC, - * _DEV3IVEC, _DEV4IVEC, _DEV5IVEC, _DEV6IVEC, _DEV7IVEC - * - * - * - * Copyright (c) 2001, 2002, 2003, 2004 Morpho Technologies - * - */ - - .section .startup, "a", @progbits - .global __boot_start -__boot_start: -_INTERRUPT_VECTOR_TABLE: - jmp _BOOTIVEC ; Boot vector - or r0, r0, r0 - jmp _SOFTIVEC ; Vector for SI instruction - or r0,r0,r0 - jmp _BRKIVEC ; Vector for Break instruction - or r0,r0,r0 - ; The illegal instruction trap is not implemented. -_RESERVED1_IVEC: - jmp _RESERVED1_IVEC ; Vector for illegal instruction - or r0,r0,r0 - jmp _OVFIVEC ; Vector for overflow exception - or r0,r0,r0 -_RESERVED2_IVEC: - jmp _RESERVED2_IVEC - or r0,r0,r0 -_RESERVED3_IVEC: - jmp _RESERVED3_IVEC - or r0,r0,r0 -_RESERVED4_IVEC: - jmp _RESERVED4_IVEC - or r0,r0,r0 - - .text - - .equ SI_IOPORT_ADR, _DEBUG_SW_SYSREQ_REG - .equ SI_IOPORT_BIT, 0x1 - .equ BRK_IOPORT_ADR, _DEBUG_BREAK_REG - .equ BRK_IOPORT_BIT, 0x1 - - .global _BOOTIVEC -_BOOTIVEC: - ; Initialize the interrupt controller's interrupt vector registers - ldui r1, #%hi16(_IVEC_DEFAULT) - ori r1, r1, #%lo16(_IVEC_DEFAULT) - stw r1, r0, #%lo16(_DEV0_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV1_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV2_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV3_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV4_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV5_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV6_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV7_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV8_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV9_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV10_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV11_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV12_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV13_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV14_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV15_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV16_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV17_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV18_INTERRUPT_REG) - - ; Statically initialized data must be copied from ROM to RAM. - ; This is done in the C run-time start-up code (crt0.o). - - ; Jump to the beginning of the application and enable interrupts. - jmp _start - ei - - - - ; Handler for the SI instruction. To perform a system call, the - ; C model uses a trapping mechanism which executes an SI instruction. - ; The Morpho Technologies simulator simply performs a branch to - ; this vector to simulate the SI instruction (this is as the hardware - ; behaves). In order to trigger the simulator that a system call - ; is needed a write into the I/O register at address $40005 to - ; set bit #2 (0x4) is necessary. - ; - ; The above address has been changed to 0x00031C and the bit number - ; is zero. (The manifest constants have been changed to reflect this.) - .global _SOFTIVEC -_SOFTIVEC: - ; Build a frame to save registers. - subi sp, sp, #$8 - stw r9, sp, #$4 - ldui r9, #%hi16(SI_IOPORT_ADR) - stw r10, sp, #$0 - ori r9, r9, #%lo16(SI_IOPORT_ADR) - ori r10, r0, #SI_IOPORT_BIT - stw r10, r9, #$0 - or r0, r0, r0 ; SYS_call is handled by simulator here... - ldw r10, sp, #$0 - or r0, r0, r0 - ldw r9, sp, #$4 - reti r14 - addi sp, sp, #$8 - - - - ; Handler for BREAK instruction. This handler triggers the simulator - ; to send a SIGTRAP signal to gdb by writing to the I/O register at - ; address $40005, setting bit #0 (0x1). - ; - ; The above address has been changed to 0x000304 and the bit number - ; is zero. (The manifest constants have been changed to reflect this.) - .global _BRKIVEC -_BRKIVEC: - ; Build a frame to save registers. - subi sp, sp, #$8 - stw r9, sp, #$4 - ldui r9, #%hi16(BRK_IOPORT_ADR) - stw r10, sp, #$0 - ori r9, r9, #%lo16(BRK_IOPORT_ADR) - ori r10, r0, #BRK_IOPORT_BIT - stw r10, r9, #$0 - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 - ldw r10, sp, #$0 - ldw r9, sp, #$4 - reti r15 - addi sp, sp, #$8 - - - ; The documentation is lacking in the specification of the Overflow - ; Exception generation. The address of the instruction causing the - ; overflow is placed into R15 and the overflow exception interrupt - ; is triggered. So, to continue execution, return to the address - ; of the next instruction (i.e., R15 + one instruction). -_OVFIVEC: - addi r15, r15, #$4 - or r0, r0, r0 - reti r15 - or r0, r0, r0 - - - .global _IVEC_DEFAULT -_IVEC_DEFAULT: - reti r15 - or r0, r0, r0 - - - .section .internal_io, "a", @progbits - .fill 256 ; Fill the first page. - - ; This is the memory-mapped I/O region. - - ; Hardware Interrupt Registers - ;.org 0xfff100 - .global _DEV0_INTERRUPT_REG -_DEV0_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV1_INTERRUPT_REG -_DEV1_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV2_INTERRUPT_REG -_DEV2_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV3_INTERRUPT_REG -_DEV3_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV4_INTERRUPT_REG -_DEV4_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV5_INTERRUPT_REG -_DEV5_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV6_INTERRUPT_REG -_DEV6_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV7_INTERRUPT_REG -_DEV7_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV8_INTERRUPT_REG -_DEV8_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV9_INTERRUPT_REG -_DEV9_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV10_INTERRUPT_REG -_DEV10_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV11_INTERRUPT_REG -_DEV11_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV12_INTERRUPT_REG -_DEV12_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV13_INTERRUPT_REG -_DEV13_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV14_INTERRUPT_REG -_DEV14_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV15_INTERRUPT_REG -_DEV15_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV16_INTERRUPT_REG -_DEV16_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV17_INTERRUPT_REG -_DEV17_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV18_INTERRUPT_REG -_DEV18_INTERRUPT_REG: - .word 0x00000000 - - ; 128 bytes minus ten registers (four bytes per register) - .fill (128 - 19 * 4) - - .global _INTERRUPT_MASK_REG -_INTERRUPT_MASK_REG: - .word 0x00000000 - - ; 128 bytes minus one register (four bytes per register) - .fill (128 - 1 * 4) - - - ;.org 0xfff200 - ; MorphoSys Decoder Registers - .global _MS_DEC_CIRC_BUFF_SEL_REG -_MS_DEC_CIRC_BUFF_SEL_REG: - .word 0x00000000 - - .global _MS_DEC_SKIP_FACTOR_REG -_MS_DEC_SKIP_FACTOR_REG: - .word 0x00000000 - - .global _MS_DEC_CUSTOM_PERM_REG -_MS_DEC_CUSTOM_PERM_REG: - .word 0x00000000 - - .global _MS_DEC_CTXT_BASE_REG -_MS_DEC_CTXT_BASE_REG: - .word 0x00000000 - - .global _MS_DEC_LOOKUP_TBL_REG -_MS_DEC_LOOKUP_TBL_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF0_END_REG -_MS_CIRC_BUFF0_END_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF0_SIZE_REG -_MS_CIRC_BUFF0_SIZE_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BLK0_END_REG -_MS_DATA_BLK0_END_REG: - .word 0x00000000 - - .global _MS_DATA_BLK0_SIZE_REG -_MS_DATA_BLK0_SIZE_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF1_END_REG -_MS_CIRC_BUFF1_END_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF1_SIZE_REG -_MS_CIRC_BUFF1_SIZE_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BLK1_END_REG -_MS_DATA_BLK1_END_REG: - .word 0x00000000 - - .global _MS_DATA_BLK1_SIZE_REG -_MS_DATA_BLK1_SIZE_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF2_END_REG -_MS_CIRC_BUFF2_END_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF2_SIZE_REG -_MS_CIRC_BUFF2_SIZE_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BLK2_END_REG -_MS_DATA_BLK2_END_REG: - .word 0x00000000 - - .global _MS_DATA_BLK2_SIZE_REG -_MS_DATA_BLK2_SIZE_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF3_END_REG -_MS_CIRC_BUFF3_END_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF3_SIZE_REG -_MS_CIRC_BUFF3_SIZE_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BLK3_END_REG -_MS_DATA_BLK3_END_REG: - .word 0x00000000 - - .global _MS_DATA_BLK3_SIZE_REG -_MS_DATA_BLK3_SIZE_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF4_END_REG -_MS_CIRC_BUFF4_END_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF4_SIZE_REG -_MS_CIRC_BUFF4_SIZE_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BLK4_END_REG -_MS_DATA_BLK4_END_REG: - .word 0x00000000 - - .global _MS_DATA_BLK4_SIZE_REG -_MS_DATA_BLK4_SIZE_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF5_END_REG -_MS_CIRC_BUFF5_END_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF5_SIZE_REG -_MS_CIRC_BUFF5_SIZE_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BLK5_END_REG -_MS_DATA_BLK5_END_REG: - .word 0x00000000 - - .global _MS_DATA_BLK5_SIZE_REG -_MS_DATA_BLK5_SIZE_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF6_END_REG -_MS_CIRC_BUFF6_END_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF6_SIZE_REG -_MS_CIRC_BUFF6_SIZE_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BLK6_END_REG -_MS_DATA_BLK6_END_REG: - .word 0x00000000 - - .global _MS_DATA_BLK6_SIZE_REG -_MS_DATA_BLK6_SIZE_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF7_END_REG -_MS_CIRC_BUFF7_END_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF7_SIZE_REG -_MS_CIRC_BUFF7_SIZE_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BLK7_END_REG -_MS_DATA_BLK7_END_REG: - .word 0x00000000 - - .global _MS_DATA_BLK7_SIZE_REG -_MS_DATA_BLK7_SIZE_REG: - .word 0x00000000 - - .global _MS_DEC_AUTO_INC0_REG -_MS_DEC_AUTO_INC0_REG: - .word 0x00000000 - - .global _MS_DEC_AUTO_INC1_REG -_MS_DEC_AUTO_INC1_REG: - .word 0x00000000 - - .global _MS_DEC_AUTO_INC2_REG -_MS_DEC_AUTO_INC2_REG: - .word 0x00000000 - - .global _MS_DEC_AUTO_INC3_REG -_MS_DEC_AUTO_INC3_REG: - .word 0x00000000 - - .global _MS_DEC_AUTO_INC4_REG -_MS_DEC_AUTO_INC4_REG: - .word 0x00000000 - - .global _MS_DEC_AUTO_INC5_REG -_MS_DEC_AUTO_INC5_REG: - .word 0x00000000 - - .global _MS_DEC_AUTO_INC6_REG -_MS_DEC_AUTO_INC6_REG: - .word 0x00000000 - - .global _MS_DEC_AUTO_INC7_REG -_MS_DEC_AUTO_INC7_REG: - .word 0x00000000 - - - ; 256 bytes minus forty-five registers (four bytes per register) - .fill (256 - 45 * 4) - - - - ;.org 0xfff300 - ; Debug Registers - .global _DEBUG_HALT_REG -_DEBUG_HALT_REG: - .word 0x00000000 - - .global _DEBUG_BREAK_REG -_DEBUG_BREAK_REG: - .word 0x00000000 - - ; There are five reserved registers. - .fill (5 * 4) - - .global _DEBUG_SW_SYSREQ_REG -_DEBUG_SW_SYSREQ_REG: - .word 0x00000000 - - ; 256 bytes minus eight registers (four bytes per register) - .fill (256 - 8 * 4) - - - - ;.org 0xfff400 - ; Sequence Generator Registers - .global _SEQ_GEN_CTRL_REG -_SEQ_GEN_CTRL_REG: - .word 0x00000000 - - .global _SEQ_GEN_MASK_REGS -_SEQ_GEN_MASK_REGS: - ; The mask registers consume two pages (less one control register). - ; 512 bytes minus one register (four bytes per register). - .fill (256 + 256 - 1 * 4) - - - - ;.org 0xfff600 - ; Timer Registers - .global _TIMER0_VAL_REG -_TIMER0_VAL_REG: - .word 0x00000000 - - .global _TIMER1_VAL_REG -_TIMER1_VAL_REG: - .word 0x00000000 - - .global _TIMER2_VAL_REG -_TIMER2_VAL_REG: - .word 0x00000000 - - .global _TIMER3_VAL_REG -_TIMER3_VAL_REG: - .word 0x00000000 - - ; 256 bytes minus four registers (four bytes per register) - .fill (256 - 4 * 4) - - - - ;.org 0xfff700 - ; Output Line Control Registers - .global _OUTPUT0_CTRL -_OUTPUT0_CTRL: - .word 0x00000000 - - .global _OUTPUT1_CTRL -_OUTPUT1_CTRL: - .word 0x00000000 - - .global _OUTPUT2_CTRL -_OUTPUT2_CTRL: - .word 0x00000000 - - .global _OUTPUT3_CTRL -_OUTPUT3_CTRL: - .word 0x00000000 - - .global _OUTPUT4_CTRL -_OUTPUT4_CTRL: - .word 0x00000000 - - .global _OUTPUT5_CTRL -_OUTPUT5_CTRL: - .word 0x00000000 - - .global _OUTPUT6_CTRL -_OUTPUT6_CTRL: - .word 0x00000000 - - .global _OUTPUT7_CTRL -_OUTPUT7_CTRL: - .word 0x00000000 - - .global _OUTPUT8_CTRL -_OUTPUT8_CTRL: - .word 0x00000000 - - .global _OUTPUT9_CTRL -_OUTPUT9_CTRL: - .word 0x00000000 - - .global _OUTPUT10_CTRL -_OUTPUT10_CTRL: - .word 0x00000000 - - ;; 128 bytes minus eleven registers (four bytes per register) - ;.fill (128 - 11 * 4) - - .global _INPUT0_CTRL -_INPUT0_CTRL: - .word 0x00000000 - - ;; 128 bytes minus one register (four bytes per register) - ;.fill (128 - 1 * 4) - ; 256 bytes minus twelve registers (four bytes per register) - .fill (256 - 12 * 4) - - - - ;.org 0xfff800 - ; IQ Buffer Registers - .global _IQ_BUFF_CTRL_REG -_IQ_BUFF_CTRL_REG: - .word 0x00000000 - - .global _IQ_BUFF_PARAMETER1_REG -_IQ_BUFF_PARAMETER1_REG: - .word 0x00000000 - - .global _IQ_BUFF_DATA_SIZE1_REG -_IQ_BUFF_DATA_SIZE1_REG: - .word 0x00000000 - - .global _IQ_BUFF_TRANSFER_SIZE1_REG -_IQ_BUFF_TRANSFER_SIZE1_REG: - .word 0x00000000 - - .global _IQ_BUFF_FB_ADDR1_REG -_IQ_BUFF_FB_ADDR1_REG: - .word 0x00000000 - - .global _IQ_BUFF_PARAMETER2_REG -_IQ_BUFF_PARAMETER2_REG: - .word 0x00000000 - - .global _IQ_BUFF_DATA_SIZE2_REG -_IQ_BUFF_DATA_SIZE2_REG: - .word 0x00000000 - - .global _IQ_BUFF_TRANSFER_SIZE2_REG -_IQ_BUFF_TRANSFER_SIZE2_REG: - .word 0x00000000 - - .global _IQ_BUFF_FB_ADDR2_REG -_IQ_BUFF_FB_ADDR2_REG: - .word 0x00000000 - - ; 256 bytes minus nine registers (four bytes per register) - .fill (256 - 9 * 4) - - - ;.org 0xfff900 - ; Reserved memory-mapped space. - .fill (0x1000 - 0x900) diff --git a/libgloss/ms1/startup-16-003.S b/libgloss/ms1/startup-16-003.S deleted file mode 100644 index 9f65f5d4d..000000000 --- a/libgloss/ms1/startup-16-003.S +++ /dev/null @@ -1,838 +0,0 @@ -/* - * $Header$ - * - * interrupt_vectors.s -- the interrupt handler jump table. - * - * - * There are a total of 32 interrupt vector possible, however, only - * 11 of those are currently used (the others are reserved). The - * order of vectors is as follows: - * - * 1. Boot Vector. Vector for power-on/reset. - * 2. Software Vector. Vector for handling the SI instruction (an - * explicit interrupt caused by software). - * 3. Break Vector. Vector for handling the Break instruction. - * 4. Device 0 Vector. Service vector for device zero. - * 5. Device 1 Vector. Service vector for device one. - * 6. Device 2 Vector. Service vector for device two. - * 7. Device 3 Vector. Service vector for device three. - * 8. Device 4 Vector. Service vector for device four. - * 9. Device 5 Vector. Service vector for device five. - * 10. Device 6 Vector. Service vector for device six. - * 11. Device 7 Vector. Service vector for device seven. - * - * The rest of the interrupt vectors are reserved for future use. - * - * - * Each jump table entry consists of the following two instructions: - * - * jmp Label ; Label as appropriate - * nop ; implemented as or r0,r0,r0 - * - * The following labels are reserved for the vectors named above, - * respectively: - * - * _BOOTIVEC, _SOFTIVEC, _BRKIVEC, _DEV0IVEC, _DEV1IVEC, _DEV2IVEC, - * _DEV3IVEC, _DEV4IVEC, _DEV5IVEC, _DEV6IVEC, _DEV7IVEC - * - * 09Jan04 (DJK) Modified internal I/O port definitions for the - * MS1-16-003. - * - * 10Oct01 (DJK) The memory map is finalized and the first 4K of address - * space is now reserved for memory-mapped I/O devices. - * (There is over 2K unused, reserved space in this area.) - * - * 26Sep01 (DJK) The memory map is changed and the device interrupts are - * now memory-mapped. - * - * - * - * Copyright (c) 2001, 2002, 2003, 2004 Morpho Technologies - * - */ - - .section .startup, "a", @progbits - .global __boot_start -__boot_start: -_INTERRUPT_VECTOR_TABLE: - jmp _BOOTIVEC ; Boot vector - or r0, r0, r0 - jmp _SOFTIVEC ; Vector for SI instruction - or r0,r0,r0 - jmp _BRKIVEC ; Vector for Break instruction - or r0,r0,r0 - ; The illegal instruction trap is not implemented. - ;jmp _ILLIVEC ; Vector for illegal instruction - or r0,r0,r0 - or r0,r0,r0 -_RESERVED1_IVEC: - jmp _RESERVED1_IVEC - or r0,r0,r0 -_RESERVED2_IVEC: - jmp _RESERVED2_IVEC - or r0,r0,r0 -_RESERVED3_IVEC: - jmp _RESERVED3_IVEC - or r0,r0,r0 -_RESERVED4_IVEC: - jmp _RESERVED4_IVEC - or r0,r0,r0 - - - .text - - .equ SI_IOPORT_ADR, _DEBUG_SW_SYSREQ_REG - .equ SI_IOPORT_BIT, 0x1 - .equ BRK_IOPORT_ADR, _DEBUG_BREAK_REG - .equ BRK_IOPORT_BIT, 0x1 - - .global _BOOTIVEC -_BOOTIVEC: - ; Initialize the interrupt controller's interrupt vector registers - ldui r1, #%hi16(_IVEC_DEFAULT) - ori r1, r1, #%lo16(_IVEC_DEFAULT) - stw r1, r0, #%lo16(_DEV0_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV1_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV2_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV3_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV4_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV5_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV6_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV7_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV8_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV9_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV10_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV11_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV12_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV13_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV14_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV15_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV16_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV17_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV18_INTERRUPT_REG) - - ; Statically initialized data must be copied from ROM to RAM. - ; This is done in the C run-time start-up code (crt0.o). - - ; Jump to the beginning of the application and enable interrupts. - jmp _start - ei - - - ; Handler for the SI instruction. To perform a system call, the - ; C model uses a trapping mechanism which executes an SI instruction. - ; The Morpho Technologies simulator simply performs a branch to - ; this vector to simulate the SI instruction (this is as the hardware - ; behaves). In order to trigger the simulator that a system call - ; is needed a write into the I/O register at address $40005 to - ; set bit #2 (0x4) is necessary. - ; - ; The above address has been changed to 0x00031C and the bit number - ; is zero. (The manifest constants have been changed to reflect this.) - .global _SOFTIVEC -_SOFTIVEC: - ; Build a frame to save registers. - subi sp, sp, #$8 - stw r9, sp, #$4 - ldui r9, #%hi16(SI_IOPORT_ADR) - stw r10, sp, #$0 - ori r9, r9, #%lo16(SI_IOPORT_ADR) - ori r10, r0, #SI_IOPORT_BIT - stw r10, r9, #$0 - ; SYS_call is handled by simulator here... - or r0, r0, r0 - ldw r10, sp, #$0 - or r0, r0, r0 - ldw r9, sp, #$4 - reti r14 - addi sp, sp, #$8 - - - - .global _BRKIVEC -_BRKIVEC: - ; Build a frame to save registers. - subi sp, sp, #$8 - stw r9, sp, #$4 - ldui r9, #%hi16(BRK_IOPORT_ADR) - stw r10, sp, #$0 - ori r9, r9, #%lo16(BRK_IOPORT_ADR) - ori r10, r0, #BRK_IOPORT_BIT - stw r10, r9, #$0 - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 - or r0, r0, r0 - ldw r10, sp, #$0 - ldw r9, sp, #$4 - reti r15 - addi sp, sp, #$8 - - -.if 0 - ; Handler for illegal instruction. - .global _ILLIVEC -_ILLIVEC: - reti r15 - or r0, r0, r0 -.endif - - - .global _IVEC_DEFAULT -_IVEC_DEFAULT: - reti r15 - or r0, r0, r0 - - - .section .internal_io, "a", @progbits - .fill 256 ; Fill the first page. - - ; This is the memory-mapped I/O region. - - ; Hardware Interrupt Registers - ;.org 0xfffff100 - .global _DEV0_INTERRUPT_REG -_DEV0_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV1_INTERRUPT_REG -_DEV1_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV2_INTERRUPT_REG -_DEV2_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV3_INTERRUPT_REG -_DEV3_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV4_INTERRUPT_REG -_DEV4_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV5_INTERRUPT_REG -_DEV5_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV6_INTERRUPT_REG -_DEV6_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV7_INTERRUPT_REG -_DEV7_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV8_INTERRUPT_REG -_DEV8_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV9_INTERRUPT_REG -_DEV9_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV10_INTERRUPT_REG -_DEV10_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV11_INTERRUPT_REG -_DEV11_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV12_INTERRUPT_REG -_DEV12_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV13_INTERRUPT_REG -_DEV13_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV14_INTERRUPT_REG -_DEV14_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV15_INTERRUPT_REG -_DEV15_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV16_INTERRUPT_REG -_DEV16_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV17_INTERRUPT_REG -_DEV17_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV18_INTERRUPT_REG -_DEV18_INTERRUPT_REG: - .word 0x00000000 - - ; 128 bytes minus nineteen registers (four bytes per register) - .fill (128 - 19 * 4) - - .global _INTERRUPT_MASK_REG -_INTERRUPT_MASK_REG: - .word 0x00000000 - - .global _INTERRUPT_PENDING_REG -_INTERRUPT_PENDING_REG: - .word 0x00000000 - - ; 16 bytes minus two registers (four bytes per register) - .fill (16 - 2 * 4) - - .global _DEV0_INTERRUPT_LEVEL_REG -_DEV0_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV1_INTERRUPT_LEVEL_REG -_DEV1_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV2_INTERRUPT_LEVEL_REG -_DEV2_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV3_INTERRUPT_LEVEL_REG -_DEV3_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV4_INTERRUPT_LEVEL_REG -_DEV4_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV5_INTERRUPT_LEVEL_REG -_DEV5_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV6_INTERRUPT_LEVEL_REG -_DEV6_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV7_INTERRUPT_LEVEL_REG -_DEV7_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV8_INTERRUPT_LEVEL_REG -_DEV8_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV9_INTERRUPT_LEVEL_REG -_DEV9_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV10_INTERRUPT_LEVEL_REG -_DEV10_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV11_INTERRUPT_LEVEL_REG -_DEV11_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV12_INTERRUPT_LEVEL_REG -_DEV12_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV13_INTERRUPT_LEVEL_REG -_DEV13_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV14_INTERRUPT_LEVEL_REG -_DEV14_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV15_INTERRUPT_LEVEL_REG -_DEV15_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV16_INTERRUPT_LEVEL_REG -_DEV16_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV17_INTERRUPT_LEVEL_REG -_DEV17_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - .global _DEV18_INTERRUPT_LEVEL_REG -_DEV18_INTERRUPT_LEVEL_REG: - .word 0x00000000 - - ; 128 bytes minus twenty-three registers (four bytes per register) - .fill (128 - 23 * 4) - - - ;.org 0xfffff200 - ; MorphoSys Decoder Registers - .global _MS_DEC_CIRC_BUFF_SEL_REG -_MS_DEC_CIRC_BUFF_SEL_REG: - .word 0x00000000 - - .global _MS_DEC_SKIP_FACTOR_REG -_MS_DEC_SKIP_FACTOR_REG: - .word 0x00000000 - - .global _MS_DEC_CUSTOM_PERM_REG -_MS_DEC_CUSTOM_PERM_REG: - .word 0x00000000 - - .global _MS_DEC_CTXT_BASE_REG -_MS_DEC_CTXT_BASE_REG: - .word 0x00000000 - - .global _MS_DEC_LOOKUP_TBL_REG -_MS_DEC_LOOKUP_TBL_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF0_I_REG -_MS_CIRC_BUFF0_I_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF0_P_REG -_MS_CIRC_BUFF0_P_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BUFF0_B_REG -_MS_DATA_BUFF0_B_REG: - .word 0x00000000 - - .global _MS_DATA_BUFF0_S_REG -_MS_DATA_BUFF0_S_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF1_I_REG -_MS_CIRC_BUFF1_I_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF1_P_REG -_MS_CIRC_BUFF1_P_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BUFF1_B_REG -_MS_DATA_BUFF1_B_REG: - .word 0x00000000 - - .global _MS_DATA_BUFF1_S_REG -_MS_DATA_BUFF1_S_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF2_I_REG -_MS_CIRC_BUFF2_I_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF2_P_REG -_MS_CIRC_BUFF2_P_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BUFF2_B_REG -_MS_DATA_BUFF2_B_REG: - .word 0x00000000 - - .global _MS_DATA_BUFF2_S_REG -_MS_DATA_BUFF2_S_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF3_I_REG -_MS_CIRC_BUFF3_I_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF3_P_REG -_MS_CIRC_BUFF3_P_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BUFF3_B_REG -_MS_DATA_BUFF3_B_REG: - .word 0x00000000 - - .global _MS_DATA_BUFF3_S_REG -_MS_DATA_BUFF3_S_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF4_I_REG -_MS_CIRC_BUFF4_I_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF4_P_REG -_MS_CIRC_BUFF4_P_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BUFF4_B_REG -_MS_DATA_BUFF4_B_REG: - .word 0x00000000 - - .global _MS_DATA_BUFF4_S_REG -_MS_DATA_BUFF4_S_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF5_I_REG -_MS_CIRC_BUFF5_I_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF5_P_REG -_MS_CIRC_BUFF5_P_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BUFF5_B_REG -_MS_DATA_BUFF5_B_REG: - .word 0x00000000 - - .global _MS_DATA_BUFF5_S_REG -_MS_DATA_BUFF5_S_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF6_I_REG -_MS_CIRC_BUFF6_I_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF6_P_REG -_MS_CIRC_BUFF6_P_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BUFF6_B_REG -_MS_DATA_BUFF6_B_REG: - .word 0x00000000 - - .global _MS_DATA_BUFF6_S_REG -_MS_DATA_BUFF6_S_REG: - .word 0x00000000 - - .global _MS_CIRC_BUFF7_I_REG -_MS_CIRC_BUFF7_I_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRC_BUFF7_P_REG -_MS_CIRC_BUFF7_P_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BUFF7_B_REG -_MS_DATA_BUFF7_B_REG: - .word 0x00000000 - - .global _MS_DATA_BUFF7_S_REG -_MS_DATA_BUFF7_S_REG: - .word 0x00000000 - - .global _MS_OMEGA_PERM1_REG -_MS_OMEGA_PERM1_REG: - .word 0x00000000 - - .global _MS_WRITE_FB_ADDR_REG -_MS_WRITE_FB_ADDR_REG: - .word 0x00000000 - - .global _MS_OMEGA_PERM2_REG -_MS_OMEGA_PERM2_REG: - .word 0x00000000 - - - ; 256 bytes minus forty registers (four bytes per register) - .fill (256 - 40 * 4) - - - - ;.org 0xfffff300 - ; Debug Registers - .global _DEBUG_HALT_REG -_DEBUG_HALT_REG: - .word 0x00000000 - - .global _DEBUG_BREAK_REG -_DEBUG_BREAK_REG: - .word 0x00000000 - - .global _DEBUG_CRITICAL_REG -_DEBUG_OWNERSHIP_REG: - .word 0x00000000 - - .global _DEBUG_KERNEL_ID_REG -_DEBUG_KERNEL_ID_REG: - .word 0x00000000 - - .global _DEBUG_IRQ_STATUS_REG -_DEBUG_IRQ_STATUS_REG: - .word 0x00000000 - - ; There are two reserved registers. - .fill (2 * 4) - - .global _DEBUG_SW_SYSREQ_REG -_DEBUG_SW_SYSREQ_REG: - .word 0x00000000 - - ; 128 bytes minus eight registers (four bytes per register) - .fill (128 - 8 * 4) - - .global _EXTENDED_GP0_REG -_EXTENDED_GP0_REG: - .word 0x00000000 - - .global _EXTENDED_GP1_REG -_EXTENDED_GP1_REG: - .word 0x00000000 - - .global _EXTENDED_GP2_REG -_EXTENDED_GP2_REG: - .word 0x00000000 - - .global _EXTENDED_GP3_REG -_EXTENDED_GP3_REG: - .word 0x00000000 - - .global _EXTENDED_GP4_REG -_EXTENDED_GP4_REG: - .word 0x00000000 - - .global _EXTENDED_GP5_REG -_EXTENDED_GP5_REG: - .word 0x00000000 - - .global _EXTENDED_GP6_REG -_EXTENDED_GP6_REG: - .word 0x00000000 - - .global _EXTENDED_GP7_REG -_EXTENDED_GP7_REG: - .word 0x00000000 - - .global _MEM_CTRL_EN_NC_MEM_REG -_MEM_CTRL_EN_NC_MEM_REG: - .word 0x00000000 - - .global _MEM_CTRL_BASE0_ADDR_REG -_MEM_CTRL_BASE0_ADDR_REG: - .word 0x00000000 - - .global _MEM_CTRL_MASK0_ADDR_REG -_MEM_CTRL_MASK0_ADDR_REG: - .word 0x00000000 - - .global _MEM_CTRL_BASE1_ADDR_REG -_MEM_CTRL_BASE1_ADDR_REG: - .word 0x00000000 - - .global _MEM_CTRL_MASK1_ADDR_REG -_MEM_CTRL_MASK1_ADDR_REG: - .word 0x00000000 - - .global _MEM_CTRL_BASE2_ADDR_REG -_MEM_CTRL_BASE2_ADDR_REG: - .word 0x00000000 - - .global _MEM_CTRL_MASK2_ADDR_REG -_MEM_CTRL_MASK2_ADDR_REG: - .word 0x00000000 - - .global _MEM_CTRL_BASE3_ADDR_REG -_MEM_CTRL_BASE3_ADDR_REG: - .word 0x00000000 - - .global _MEM_CTRL_MASK3_ADDR_REG -_MEM_CTRL_MASK3_ADDR_REG: - .word 0x00000000 - - ; 128 bytes minus seventeen registers (four bytes per register) - .fill (128 - 17 * 4) - - - - ; Reserved memory-map space - .fill (256 + 256) - - - - ;.org 0xfffff600 - ; Timer Registers - .global _TIMER0_VAL_REG -_TIMER0_VAL_REG: - .word 0x00000000 - - .global _TIMER1_VAL_REG -_TIMER1_VAL_REG: - .word 0x00000000 - - .global _TIMER2_VAL_REG -_TIMER2_VAL_REG: - .word 0x00000000 - - .global _TIMER3_VAL_REG -_TIMER3_VAL_REG: - .word 0x00000000 - - ; 256 bytes minus four registers (four bytes per register) - .fill (256 - 4 * 4) - - - - ;.org 0xfffff700 - ; Output Line Control Registers - .global _OUTPUT0_CTRL -_OUTPUT0_CTRL: - .word 0x00000000 - - .global _OUTPUT1_CTRL -_OUTPUT1_CTRL: - .word 0x00000000 - - .global _OUTPUT2_CTRL -_OUTPUT2_CTRL: - .word 0x00000000 - - .global _OUTPUT3_CTRL -_OUTPUT3_CTRL: - .word 0x00000000 - - .global _OUTPUT4_CTRL -_OUTPUT4_CTRL: - .word 0x00000000 - - .global _OUTPUT5_CTRL -_OUTPUT5_CTRL: - .word 0x00000000 - - .global _OUTPUT6_CTRL -_OUTPUT6_CTRL: - .word 0x00000000 - - ; 128 bytes minus seven registers (four bytes per register) - .fill (128 - 7 * 4) - - .global _INPUT0_CTRL -_INPUT0_CTRL: - .word 0x00000000 - - ; 128 bytes minus one register (four bytes per register) - .fill (128 - 1 * 4) - - - - ;.org 0xfffff800 - ; IQ Buffer Registers - .global _IQ_BUFF_CTRL_REG -_IQ_BUFF_CTRL_REG: - .word 0x00000000 - - .global _IQ_BUFF_STATUS_REG -_IQ_BUFF_STATUS_REG: - .word 0x00000000 - - .global _IQ_BUFF_PARAMETER1_REG -_IQ_BUFF_PARAMETER1_REG: - .word 0x00000000 - - .global _IQ_BUFF_TRANSFER_SIZE1_REG -_IQ_BUFF_TRANSFER_SIZE1_REG: - .word 0x00000000 - - .global _IQ_BUFF_FB_BASE1_REG -_IQ_BUFF_FB_BASE1_REG: - .word 0x00000000 - - .global _IQ_BUFF_FB_SIZE1_REG -_IQ_BUFF_FB_SIZE1_REG: - .word 0x00000000 - - .global _IQ_BUFF_PARAMETER2_REG -_IQ_BUFF_PARAMETER2_REG: - .word 0x00000000 - - .global _IQ_BUFF_TRANSFER_SIZE2_REG -_IQ_BUFF_TRANSFER_SIZE2_REG: - .word 0x00000000 - - .global _IQ_BUFF_FB_BASE2_REG -_IQ_BUFF_FB_BASE2_REG: - .word 0x00000000 - - .global _IQ_BUFF_FB_SIZE2_REG -_IQ_BUFF_FB_SIZE2_REG: - .word 0x00000000 - - ; 256 bytes minus ten registers (four bytes per register) - .fill (256 - 10 * 4) - - - - ;.org 0xfffff900 - ; DMA Controller - .global _DMA_CTRL_REG -_DMA_CTRL_REG: - .word 0x00000000 - - .global _DMA_STATUS_REG -_DMA_STATUS_REG: - .word 0x00000000 - - .global _DMA_CH0_EADDR_REG -_DMA_CH0_EADDR_REG: - .word 0x00000000 - - .global _DMA_CH0_IADDR_REG -_DMA_CH0_IADDR_REG: - .word 0x00000000 - - .global _DMA_CH0_SIZE_REG -_DMA_CH0_SIZE_REG: - .word 0x00000000 - - .global _DMA_CH1_EADDR_REG -_DMA_CH1_EADDR_REG: - .word 0x00000000 - - .global _DMA_CH1_IADDR_REG -_DMA_CH1_IADDR_REG: - .word 0x00000000 - - .global _DMA_CH1_SIZE_REG -_DMA_CH1_SIZE_REG: - .word 0x00000000 - - .global _DMA_CH2_EADDR_REG -_DMA_CH2_EADDR_REG: - .word 0x00000000 - - .global _DMA_CH2_IADDR_REG -_DMA_CH2_IADDR_REG: - .word 0x00000000 - - .global _DMA_CH2_SIZE_REG -_DMA_CH2_SIZE_REG: - .word 0x00000000 - - .global _DMA_CH3_EADDR_REG -_DMA_CH3_EADDR_REG: - .word 0x00000000 - - .global _DMA_CH3_IADDR_REG -_DMA_CH3_IADDR_REG: - .word 0x00000000 - - .global _DMA_CH3_SIZE_REG -_DMA_CH3_SIZE_REG: - .word 0x00000000 - - ; 256 bytes minus fourteen registers (four bytes per register) - .fill (256 - 14 * 4) - - - - ;.org 0xfffffa00 - ; Sequence Generator - .global _SEQ_GEN_CTRL_STATUS_REG -_SEQ_GEN_CTRL_STATUS_REG: - .word 0x00000000 - - .global _SEQ_GEN_MASK_REGS -_SEQ_GEN_MASK_REGS: - .fill (302 * 4) - - .global _SEQ_GEN_SHIFT_REG -_SEQ_GEN_SHIFT_REG: - .word 0x00000000 - - ; 256 bytes minus seven registers (four bytes per register) - .fill (256 - 48 * 4) - - - - ; Reserved memory-map space - .fill (0x1000 - 0xf00) diff --git a/libgloss/ms1/startup-64-001.S b/libgloss/ms1/startup-64-001.S deleted file mode 100644 index 5ceb42b36..000000000 --- a/libgloss/ms1/startup-64-001.S +++ /dev/null @@ -1,378 +0,0 @@ -/* - * $Header$ - * - * interrupt_vectors.s -- the interrupt handler jump table. - * - * - * There are a total of 32 interrupt vector possible, however, only - * 11 of those are currently used (the others are reserved). The - * order of vectors is as follows: - * - * 1. Boot Vector. Vector for power-on/reset. - * 2. Software Vector. Vector for handling the SI instruction (an - * explicit interrupt caused by software). - * 3. Break Vector. Vector for handling the Break instruction. - * 4. Device 0 Vector. Service vector for device zero. - * 5. Device 1 Vector. Service vector for device one. - * 6. Device 2 Vector. Service vector for device two. - * 7. Device 3 Vector. Service vector for device three. - * 8. Device 4 Vector. Service vector for device four. - * 9. Device 5 Vector. Service vector for device five. - * 10. Device 6 Vector. Service vector for device six. - * 11. Device 7 Vector. Service vector for device seven. - * - * The rest of the interrupt vectors are reserved for future use. - * - * - * Each jump table entry consists of the following two instructions: - * - * jmp Label ; Label as appropriate - * nop ; implemented as or r0,r0,r0 - * - * The following labels are reserved for the vectors named above, - * respectively: - * - * _BOOTIVEC, _SOFTIVEC, _BRKIVEC, _DEV0IVEC, _DEV1IVEC, _DEV2IVEC, - * _DEV3IVEC, _DEV4IVEC, _DEV5IVEC, _DEV6IVEC, _DEV7IVEC - * - * - * 26Sep01 (DJK) The memory map is changed and the device interrupts are - * now memory-mapped. - * - * 10Oct01 (DJK) The memory map is finalized and the first 4K of address - * space is now reserved for memory-mapped I/O devices. - * (There is over 2K unused, reserved space in this area.) - * - * 27Jul02 (DJK) Fixed the address for the interrupt mask register. Old - * documentation stated the port address as 0x140, but - * the implementation uses 0x13c. - * - * 30Jul02 (DJK) Added support for printf. This only supports output to - * stderr and stdout. Using the message box interface, - * a (newly defined) message or series of messages is - * passed to the controller to output bytes as text to - * the debug console. These messages are constructed in - * the interrupt handler for the SI instruction. - * With this implementation, the user is unable to - * utilize the message box interface in applications as - * specialized interrupt handlers for the external - * interrupts are necessary. - * - * - * - * Copyright (c) 2001, 2002, 2003, 2004 Morpho Technologies, Inc. - * - */ - - .section .startup, "a", @progbits - .global __boot_start -_INTERRUPT_VECTOR_TABLE: -__boot_start: - jmp _BOOTIVEC ; Boot vector - or r0, r0, r0 - jmp _SOFTIVEC ; Vector for SI instruction - or r0,r0,r0 - jmp _BRKIVEC ; Vector for Break instruction - or r0,r0,r0 - - - ; This is the memory-mapped I/O region. - - ; Hardware Interrupt Registers - .org 0x100 - .global _DEV0_INTERRUPT_REG -_DEV0_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV1_INTERRUPT_REG -_DEV1_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV2_INTERRUPT_REG -_DEV2_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV3_INTERRUPT_REG -_DEV3_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV4_INTERRUPT_REG -_DEV4_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV5_INTERRUPT_REG -_DEV5_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV6_INTERRUPT_REG -_DEV6_INTERRUPT_REG: - .word 0x00000000 - - .global _DEV7_INTERRUPT_REG -_DEV7_INTERRUPT_REG: - .word 0x00000000 - - ; 60 bytes minus eight registers (four bytes per register) - .fill (60 - 8 * 4) - - .global _INTERRUPT_MASK_REG -_INTERRUPT_MASK_REG: - .word 0x00000000 - - ; 256 bytes minus sixteen registers (four bytes per register) - .fill (256 - 16 * 4) - - - - .org 0x200 - ; MorphoSys Decoder Registers - .global _MS_DEC_AUTO_INCREMENT_REG -_MS_DEC_AUTO_INCREMENT_REG: - .word 0x00000000 - - .global _MS_DEC_SKIP_FACTOR_REG -_MS_DEC_SKIP_FACTOR_REG: - .word 0x00000000 - - .global _MS_DEC_CUSTOM_PERMUTATION_REG -_MS_DEC_CUSTOM_PERMUTATION_REG: - .word 0x00000000 - - .global _MS_DEC_CONTEXT_BASE_REG -_MS_DEC_CONTEXT_BASE_REG: - .word 0x00000000 - - .global _MS_DEC_LOOKUP_TABLE_BASE_REG -_MS_DEC_LOOKUP_TABLE_BASE_REG: - .word 0x00000000 - - .global _MS_CIRCULAR_BUFFER_END_REG -_MS_CIRCULAR_BUFFER_END_REG: - .word (__FRAME_BUFFER_END) - - .global _MS_CIRCULAR_BUFFER_SIZE_REG -_MS_CIRCULAR_BUFFER_SIZE_REG: - .word __FRAME_BUFFER_SIZE - - .global _MS_DATA_BLOCK_END_REG -_MS_DATA_BLOCK_END_REG: - .word 0x00000000 - - .global _MS_DATA_BLOCK_SIZE_REG -_MS_DATA_BLOCK_SIZE_REG: - .word 0x00000000 - - ; 256 bytes minus nine registers (four bytes per register) - .fill (256 - 9 * 4) - - - - .org 0x300 - ; Debug Registers - .global _DEBUG_HALT_REG -_DEBUG_HALT_REG: - .word 0x00000000 - - .global _DEBUG_BREAK_REG -_DEBUG_BREAK_REG: - .word 0x00000000 - - .global _DEBUG_HW_RESERVED0_REG -_DEBUG_HW_RESERVED0_REG: - .word 0x00000000 - - .global _DEBUG_HW_RESERVED1_REG -_DEBUG_HW_RESERVED1_REG: - .word 0x00000000 - - .global _DEBUG_HW_RESERVED2_REG -_DEBUG_HW_RESERVED2_REG: - .word 0x00000000 - - .global _DEBUG_HW_RESERVED3_REG -_DEBUG_HW_RESERVED3_REG: - .word 0x00000000 - - .global _DEBUG_HW_RESERVED4_REG -_DEBUG_HW_RESERVED4_REG: - .word 0x00000000 - - .global _DEBUG_SW_SYSREQ_REG -_DEBUG_SW_SYSREQ_REG: - .word 0x00000000 - - ; 256 bytes minus eight registers (four bytes per register) - .fill (256 - 8 * 4) - - - - .org 0x400 - ; Sequence Generator Registers -_SEQ_GEN_REGS: - .fill 256 - - - - .org 0x500 -_RESERVED_SEQ_GEN_REGS: - .fill 256 - - - - .org 0x600 - .global _TIMER0_VAL_REG -_TIMER0_VAL_REG: - .word 0x00000000 - - .global _TIMER0_CTRL_REG -_TIMER0_CTRL_REG: - .word 0x00000000 - - .global _TIMER1_VAL_REG -_TIMER1_VAL_REG: - .word 0x00000000 - - .global _TIMER1_CTRL_REG -_TIMER1_CTRL_REG: - .word 0x00000000 - - .global _TIMER2_VAL_REG -_TIMER2_VAL_REG: - .word 0x00000000 - - .global _TIMER2_CTRL_REG -_TIMER2_CTRL_REG: - .word 0x00000000 - - ; 256 bytes minus six registers (four bytes per register) - .fill (256 - 6 * 4) - - - - .org 0x700 - .global _OUTPUT0_CONTROL -_OUTPUT0_CONTROL: - .word 0x00000000 - - .global _OUTPUT1_CONTROL -_OUTPUT1_CONTROL: - .word 0x00000000 - - .global _OUTPUT2_CONTROL -_OUTPUT2_CONTROL: - .word 0x00000000 - - .global _OUTPUT3_CONTROL -_OUTPUT3_CONTROL: - .word 0x00000000 - - .global _OUTPUT4_CONTROL -_OUTPUT4_CONTROL: - .word 0x00000000 - - .global _OUTPUT5_CONTROL -_OUTPUT5_CONTROL: - .word 0x00000000 - - .global _OUTPUT6_CONTROL -_OUTPUT6_CONTROL: - .word 0x00000000 - - .global _OUTPUT7_CONTROL -_OUTPUT7_CONTROL: - .word 0x00000000 - - ; 256 bytes minus eight registers (four bytes per register) - .fill (256 - 8 * 4) - - - - .org 0x800 - ; Reserved memory-mapped space. - .fill (0x1000 - 0x800) - - - - .text - - .equ SI_IOPORT_ADR, _DEBUG_SW_SYSREQ_REG - .equ SI_IOPORT_BIT, 0x1 - .equ BRK_IOPORT_ADR, _DEBUG_BREAK_REG - .equ BRK_IOPORT_BIT, 0x1 - - .global _BOOTIVEC -_BOOTIVEC: - - ; Initialize the interrupt controller's interrupt vector registers - ; for devices zero through seven. - ldui r1, #%hi16(_IVEC_DEFAULT) - ori r1, r1, #%lo16(_IVEC_DEFAULT) - stw r1, r0, #%lo16(_DEV0_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV1_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV2_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV3_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV4_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV5_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV6_INTERRUPT_REG) - stw r1, r0, #%lo16(_DEV7_INTERRUPT_REG) - - ; Jump to the beginning of the application and enable interrupts. - jmp _start - ei - - - - ; Handler for the SI instruction. To perform a system call, the - ; C model uses a trapping mechanism which executes an SI instruction. - ; The Morpho Technologies simulator simply performs a branch to - ; this vector to simulate the SI instruction (this is as the hardware - ; behaves). In order to trigger the simulator that a system call - ; is needed, a write into the I/O register at address $40005 to - ; set bit #2 (0x4) is necessary. - ; - ; The above address has been changed to 0x31C and the bit number - ; is zero. (The manifest constants have been changed to reflect this.) - ; - .global _SOFTIVEC -_SOFTIVEC: - ; Build a frame to save registers. - subi sp, sp, #$8 - stw r9, sp, #$4 - ldui r9, #%hi16(SI_IOPORT_ADR) - stw r10, sp, #$0 - ori r9, r9, #%lo16(SI_IOPORT_ADR) - ori r10, r0, #SI_IOPORT_BIT - stw r10, r9, #$0 - ; SYS_call is handled by simulator here... - or r0, r0, r0 - ldw r10, sp, #$0 - or r0, r0, r0 - ldw r9, sp, #$4 - reti r14 - addi sp, sp, #$8 - - - - .global _BRKIVEC -_BRKIVEC: - ; Build a frame to save registers. - subi sp, sp, #$8 - stw r9, sp, #$4 - ldui r9, #%hi16(BRK_IOPORT_ADR) - stw r10, sp, #$0 - ori r9, r9, #%lo16(BRK_IOPORT_ADR) - ori r10, r0, #BRK_IOPORT_BIT - stw r10, r9, #$0 - or r0, r0, r0 - ldw r10, sp, #$0 - subi r15, r15, #$4 ; Backup to address of break - ldw r9, sp, #$4 - reti r15 - addi sp, sp, #$8 - - - - .global _IVEC_DEFAULT -_IVEC_DEFAULT: - reti r15 - or r0, r0, r0 diff --git a/libgloss/ms1/stat.c b/libgloss/ms1/stat.c deleted file mode 100644 index 9a6ca7ca0..000000000 --- a/libgloss/ms1/stat.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" - - -int -stat (const char *path, struct stat *st) - -{ - return TRAP0 (SYS_stat, path, st, 0); -} diff --git a/libgloss/ms1/time.c b/libgloss/ms1/time.c deleted file mode 100644 index 2df8d48d2..000000000 --- a/libgloss/ms1/time.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" - - -time_t -time (time_t *tloc) -{ - return TRAP0 (SYS_time, tloc, 0, 0); -} diff --git a/libgloss/ms1/times.c b/libgloss/ms1/times.c deleted file mode 100644 index b804be4cd..000000000 --- a/libgloss/ms1/times.c +++ /dev/null @@ -1,12 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" -#include "sys/times.h" - - -clock_t -times (struct tms *buffer) -{ - return TRAP0 (SYS_times, buffer, 0, 0); -} diff --git a/libgloss/ms1/trap.S b/libgloss/ms1/trap.S deleted file mode 100644 index 9fca7204e..000000000 --- a/libgloss/ms1/trap.S +++ /dev/null @@ -1,34 +0,0 @@ -;; -;; The errno will be in r5 if r11 is -1. -;; - .text - .global __trap0 -__trap0: - ;; non-leaf function so need to create stack frame to - ;; store ra and fp - subi sp, sp, #16 - stw ra, sp, #12 - or r0, r0, r0 ;; nop - stw fp, sp, #8 - or fp, sp, sp - stw r5, sp, #4 - or r0, r0, r0 ;; nop - stw r6, sp, #0 - addi r6, r0, #$-1 - si r14 - or r0, r0, r0 ;; nop - brne r11, r6, .L0 - ldui r6, #%hi16(errno) - addui r6, r6, #%lo16(errno) - stw r5, r6, #0 - or r0, r0, r0 ;; nop -.L0: - ldw r6, sp, #0 - or r0, r0, r0 ;; nop - ldw r5, sp, #4 - or r0, r0, r0 ;; nop - ldw ra, sp, #12 - or r0, r0, r0 ;; nop - ldw fp, sp, #8 - jal r0, r14 - addi sp, sp, #16 diff --git a/libgloss/ms1/trap.h b/libgloss/ms1/trap.h deleted file mode 100644 index 27636c004..000000000 --- a/libgloss/ms1/trap.h +++ /dev/null @@ -1,5 +0,0 @@ -#include "syscall.h" - -int __trap0 (); - -#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) diff --git a/libgloss/ms1/unlink.c b/libgloss/ms1/unlink.c deleted file mode 100644 index a620e89dd..000000000 --- a/libgloss/ms1/unlink.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" - - -int -unlink () -{ - return -1; -} diff --git a/libgloss/ms1/utime.c b/libgloss/ms1/utime.c deleted file mode 100644 index 3fce7e364..000000000 --- a/libgloss/ms1/utime.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" - - -int -utime (path, times) - const char *path; - char *times; -{ - return TRAP0 (SYS_utime, path, times, 0); -} diff --git a/libgloss/ms1/write.c b/libgloss/ms1/write.c deleted file mode 100644 index 88b5ff83d..000000000 --- a/libgloss/ms1/write.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <_ansi.h> -#include -#include -#include "trap.h" - - -int -write ( int file, - char *ptr, - size_t len) -{ - return TRAP0 (SYS_write, file, ptr, len); -} diff --git a/libgloss/mt/16-002.ld b/libgloss/mt/16-002.ld new file mode 100644 index 000000000..65efb8578 --- /dev/null +++ b/libgloss/mt/16-002.ld @@ -0,0 +1,248 @@ +OUTPUT_FORMAT("elf32-ms1", "elf32-ms1", "elf32-ms1") +OUTPUT_ARCH(ms1) +ENTRY(__boot_start) +SEARCH_DIR(/usr/local/mrisc1-elf/lib) +/* Do we need any of these for elf? + __DYNAMIC = 0; */ +MEMORY +{ + ram (rwx) : ORIGIN = 0x0, LENGTH = 128K + frame-buffer (w) : ORIGIN = 0xde0000, LENGTH = 40K + ports (w) : ORIGIN = 0xfff000, LENGTH = 4K + dma-ram (w) : ORIGIN = 0x1000000, LENGTH = 16M-4K +} +SECTIONS +{ + /* Read-only sections, merged into text segment: */ + . = 0x0; + PROVIDE(__executable_start = 0x0); + .interp : { *(.interp) } + .hash : { *(.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + .rel.init : { *(.rel.init) } + .rela.init : { *(.rela.init) } + .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } + .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } + .rel.fini : { *(.rel.fini) } + .rela.fini : { *(.rela.fini) } + .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } + .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } + .rel.data.rel.ro : { *(.rel.data.rel.ro*) } + .rela.data.rel.ro : { *(.rela.data.rel.ro*) } + .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } + .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } + .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } + .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } + .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } + .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } + .rel.ctors : { *(.rel.ctors) } + .rela.ctors : { *(.rela.ctors) } + .rel.dtors : { *(.rel.dtors) } + .rela.dtors : { *(.rela.dtors) } + .rel.got : { *(.rel.got) } + .rela.got : { *(.rela.got) } + .rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) } + .rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) } + .rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) } + .rela.sbss : { *(.rela.sbss .rela.sbss.* .rel.gnu.linkonce.sb.*) } + .rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) } + .rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) } + .rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) } + .rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) } + .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } + .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } + .rel.plt : { *(.rel.plt) } + .rela.plt : { *(.rela.plt) } + + .startup : { *startup-16-002.o(.startup) } >ram =0 + . = 0x40 ; + + .init : { KEEP (*(.init)) } >ram =0 + .plt : { *(.plt) } >ram + .text : + { + *startup-16-002.o(.text) + *(.text .stub .text.* .gnu.linkonce.t.*) + KEEP (*(.text.*personality*)) + /* .gnu.warning sections are handled specially by elf32.em. */ + *(.gnu.warning) + } >ram =0 + .fini : { KEEP (*(.fini)) } >ram =0 + PROVIDE (__etext = .); + PROVIDE (_etext = .); + PROVIDE (etext = .); + .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } >ram + .rodata1 : { *(.rodata1) } >ram + .sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } >ram + .sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } >ram + .eh_frame_hdr : { *(.eh_frame_hdr) } >ram + .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } >ram + .gcc_except_table : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >ram + /* Adjust the address for the data segment. We want to adjust up to + the same address within the page on the next page up. */ + . = ALIGN(256) + (. & (256 - 1)); + /* Exception handling */ + .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } >ram + .gcc_except_table : ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >ram + /* Thread Local Storage sections */ + .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } >ram + .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >ram + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(32 / 8); + PROVIDE (__preinit_array_start = .); + .preinit_array : { *(.preinit_array) } >ram + PROVIDE (__preinit_array_end = .); + PROVIDE (__init_array_start = .); + .init_array : { *(.init_array) } >ram + PROVIDE (__init_array_end = .); + PROVIDE (__fini_array_start = .); + .fini_array : { *(.fini_array) } >ram + PROVIDE (__fini_array_end = .); + .ctors : + { + /* gcc uses crtbegin.o to find the start of + the constructors, so we make sure it is + first. Because this is a wildcard, it + doesn't matter if the user does not + actually link against crtbegin.o; the + linker won't look for a file to match a + wildcard. The wildcard also means that it + doesn't matter which directory crtbegin.o + is in. */ + KEEP (*crtbegin.o(.ctors)) + /* We don't want to include the .ctor section from + from the crtend.o file until after the sorted ctors. + The .ctor section from the crtend file contains the + end of ctors marker and it must be last */ + KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + } >ram + .dtors : + { + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + } >ram + .jcr : { KEEP (*(.jcr)) } >ram + .data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) } >ram + .dynamic : { *(.dynamic) } >ram + + /* DJK - Re-align the data section from the read-only section. */ + . = ALIGN(16) + (. & (16 - 1)); + PROVIDE (_data = .); + .data : + { + *(.data .data.* .gnu.linkonce.d.*) + SORT(CONSTRUCTORS) + } >ram + .data1 : { *(.data1) } >ram + .got : { *(.got.plt) *(.got) } >ram + + /* We want the small data sections together, so single-instruction offsets + can access them all, and initialized data all before uninitialized, so + we can shorten the on-disk segment size. */ + .sdata : { *(.sdata .sdata.* .gnu.linkonce.s.*) } >ram + _edata = .; + PROVIDE ( edata = . ) ; + .sbss : + { + PROVIDE (__sbss_start = .); + PROVIDE (___sbss_start = .); + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.scommon) + PROVIDE (__sbss_end = .); + PROVIDE (___sbss_end = .); + } >ram + .bss : + { + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + /* Align here to ensure that the .bss section occupies space up to + _end. Align after .bss to ensure correct alignment even if the + .bss section disappears because there are no input sections. */ + . = ALIGN(32 / 8); + } >ram + . = ALIGN(32 / 8); + __bss_start = ADDR ( .sbss ) ; + __bss_end = __bss_start + SIZEOF ( .sbss ) + SIZEOF ( .bss ) - 4 ; + _end = .; + PROVIDE (end = .); + + /* DJK - Initialized frame buffer data is copied from RAM to FB. */ + .auxbss : AT (ADDR(.bss) + SIZEOF(.bss)) { *(.auxbss) } >frame-buffer + .auxdata : AT (LOADADDR(.auxbss) + SIZEOF(.auxbss)) + { + *(.auxdata) + } >frame-buffer + + _fbbss_start = ADDR ( .auxbss ); + _fbbss_end = _fbbss_start + SIZEOF ( .auxbss ) - 4; + _fbdata_start = LOADADDR ( .auxdata ); + _fbdata_end = _fbdata_start + SIZEOF ( .auxdata ) ; + _fbdata_vma = ADDR ( .auxdata ); + + PROVIDE (__FRAME_BUFFER_START = ADDR(.auxbss) ); + PROVIDE (__FRAME_BUFFER_SIZE = 0xa000); + PROVIDE (__FRAME_BUFFER_END = __FRAME_BUFFER_START + __FRAME_BUFFER_SIZE); + + .dma : { _dma_start = .; *(.dma) _dma_end = .; } >dma-ram + .internal_io (NOLOAD) : { *(.internal_io) } >ports + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + /* In a multi-core environment, each core is given its own stack space + equal to __stack_size. */ + PROVIDE (__stack = 0x1fff0); + PROVIDE (__stack_size = 0x800); + + .stack (DEFINED(__stack) ? __stack : 0x007ffff0) : + { + __stack = .; + *(.stack) + LONG(0xdeaddead) + } + /DISCARD/ : { *(.note.GNU-stack) } +} diff --git a/libgloss/mt/16-003.ld b/libgloss/mt/16-003.ld new file mode 100644 index 000000000..9da0fe556 --- /dev/null +++ b/libgloss/mt/16-003.ld @@ -0,0 +1,258 @@ +OUTPUT_FORMAT("elf32-ms1", "elf32-ms1", "elf32-ms1") +OUTPUT_ARCH(ms1) +ENTRY(__boot_start) +SEARCH_DIR(/usr/local/mrisc1-elf/lib) +/* Do we need any of these for elf? + __DYNAMIC = 0; */ +MEMORY +{ + ram (rwx) : ORIGIN = 0x0, LENGTH = 608K + frame-buffer (w) : ORIGIN = 0xff000000, LENGTH = 80K + dma-ram (w) : ORIGIN = 0x1000000, LENGTH = 16M-4K + ports (w) : ORIGIN = 0xfffff000, LENGTH = 4K +} +SECTIONS +{ + /* Read-only sections, merged into text segment: */ + . = 0x0; + PROVIDE(__executable_start = 0x0); + .interp : { *(.interp) } + .hash : { *(.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + .rel.init : { *(.rel.init) } + .rela.init : { *(.rela.init) } + .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } + .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } + .rel.fini : { *(.rel.fini) } + .rela.fini : { *(.rela.fini) } + .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } + .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } + .rel.data.rel.ro : { *(.rel.data.rel.ro*) } + .rela.data.rel.ro : { *(.rela.data.rel.ro*) } + .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } + .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } + .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } + .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } + .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } + .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } + .rel.ctors : { *(.rel.ctors) } + .rela.ctors : { *(.rela.ctors) } + .rel.dtors : { *(.rel.dtors) } + .rela.dtors : { *(.rela.dtors) } + .rel.got : { *(.rel.got) } + .rela.got : { *(.rela.got) } + .rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) } + .rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) } + .rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) } + .rela.sbss : { *(.rela.sbss .rela.sbss.* .rel.gnu.linkonce.sb.*) } + .rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) } + .rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) } + .rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) } + .rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) } + .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } + .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } + .rel.plt : { *(.rel.plt) } + .rela.plt : { *(.rela.plt) } + + .startup : { *startup-16-003.o(.startup) } >ram =0 + . = 0x40; + + .init : { KEEP (*(.init)) } >ram =0 + .plt : { *(.plt) } >ram + .text : + { + *startup-16-003.o(.text); + *(.text .stub .text.* .gnu.linkonce.t.*) + KEEP (*(.text.*personality*)) + /* .gnu.warning sections are handled specially by elf32.em. */ + *(.gnu.warning) + } >ram =0 + .fini : { KEEP (*(.fini)) } >ram =0 + PROVIDE (__etext = .); + PROVIDE (_etext = .); + PROVIDE (etext = .); + .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } >ram + .rodata1 : { *(.rodata1) } >ram + .sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } >ram + .sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } >ram + .eh_frame_hdr : { *(.eh_frame_hdr) } >ram + .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } >ram + .gcc_except_table : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >ram + /* Adjust the address for the data segment. We want to adjust up to + the same address within the page on the next page up. */ + . = ALIGN(256) + (. & (256 - 1)); + /* Exception handling */ + .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } >ram + .gcc_except_table : ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >ram + /* Thread Local Storage sections */ + .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } >ram + .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >ram + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(32 / 8); + PROVIDE (__preinit_array_start = .); + .preinit_array : { *(.preinit_array) } >ram + PROVIDE (__preinit_array_end = .); + PROVIDE (__init_array_start = .); + .init_array : { *(.init_array) } >ram + PROVIDE (__init_array_end = .); + PROVIDE (__fini_array_start = .); + .fini_array : { *(.fini_array) } >ram + PROVIDE (__fini_array_end = .); + .ctors : + { + /* gcc uses crtbegin.o to find the start of + the constructors, so we make sure it is + first. Because this is a wildcard, it + doesn't matter if the user does not + actually link against crtbegin.o; the + linker won't look for a file to match a + wildcard. The wildcard also means that it + doesn't matter which directory crtbegin.o + is in. */ + KEEP (*crtbegin.o(.ctors)) + /* We don't want to include the .ctor section from + from the crtend.o file until after the sorted ctors. + The .ctor section from the crtend file contains the + end of ctors marker and it must be last */ + KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + } >ram + .dtors : + { + KEEP (*crtbegin*.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + } >ram + .jcr : { KEEP (*(.jcr)) } >ram + .data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) } >ram + .dynamic : { *(.dynamic) } >ram + + /* DJK - Re-align the data section from the read-only section. */ + . = ALIGN(16) + (. & (16 - 1)); + PROVIDE (_data = .); + .data : + { + *(.data .data.* .gnu.linkonce.d.*) + KEEP (*(.gnu.linkonce.d.*personality*)) + SORT(CONSTRUCTORS) + } >ram + .data1 : { *(.data1) } >ram + .got : { *(.got.plt) *(.got) } >ram + + /* We want the small data sections together, so single-instruction offsets + can access them all, and initialized data all before uninitialized, so + we can shorten the on-disk segment size. */ + .sdata : { *(.sdata .sdata.* .gnu.linkonce.s.*) } >ram + _edata = .; + PROVIDE ( edata = . ); + .sbss : + { + PROVIDE (__sbss_start = .); + PROVIDE (___sbss_start = .); + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.scommon) + PROVIDE (__sbss_end = .); + PROVIDE (___sbss_end = .); + } >ram + .bss : + { + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + /* Align here to ensure that the .bss section occupies space up to + _end. Align after .bss to ensure correct alignment even if the + .bss section disappears because there are no input sections. */ + . = ALIGN(32 / 8); + } >ram + . = ALIGN(32 / 8); + __bss_start = ADDR ( .sbss ) ; + __bss_end = __bss_start + SIZEOF ( .sbss ) + SIZEOF ( .bss ) - 4 ; + _end = .; + PROVIDE (end = .); + + /* DJK - Initialized frame buffer data is copied from RAM to FB. */ + .auxbss : AT (ADDR(.bss) + SIZEOF(.bss)) { *(.auxbss) } >frame-buffer + .auxdata : AT (LOADADDR(.auxbss) + SIZEOF(.auxbss)) + { + *(.auxdata.bank0) + . = ALIGN(0x4000); + *(.auxdata.bank1) + . = ALIGN(0x4000); + *(.auxdata.bank2) + . = ALIGN(0x4000); + *(.auxdata.bank3) + . = ALIGN(0x4000); + *(.auxdata.bank4) + *(.auxdata) + } >frame-buffer + + _fbbss_start = ADDR ( .auxbss ); + _fbbss_end = _fbbss_start + SIZEOF ( .auxbss ) - 4; + _fbdata_start = LOADADDR ( .auxdata ); + _fbdata_end = _fbdata_start + SIZEOF ( .auxdata ) ; + _fbdata_vma = ADDR ( .auxdata ); + + PROVIDE (__FRAME_BUFFER_START = ADDR(.auxbss) ); + PROVIDE (__FRAME_BUFFER_SIZE = 0x14000); + PROVIDE (__FRAME_BUFFER_END = __FRAME_BUFFER_START + __FRAME_BUFFER_SIZE); + + .dma : { _dma_start = .; *(.dma) _dma_end = .; } >dma-ram + .internal_io (NOLOAD) : { *(.internal_io) } >ports + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + /* In a multi-core environment, each core is given its own stack space + equal to __stack_size, growing downwards. */ + PROVIDE (__stack = 0x97ff0); + PROVIDE (__stack_size = 0x800); + + .stack (DEFINED(__stack) ? __stack : 0x007ffff0) : + { + __stack = .; + *(.stack) + LONG(0xdeaddead) + } + /DISCARD/ : { *(.note.GNU-stack) } +} diff --git a/libgloss/mt/64-001.ld b/libgloss/mt/64-001.ld new file mode 100644 index 000000000..f8a8ca054 --- /dev/null +++ b/libgloss/mt/64-001.ld @@ -0,0 +1,282 @@ +OUTPUT_FORMAT("elf32-ms1", "elf32-ms1", "elf32-ms1") +OUTPUT_ARCH(ms1) +ENTRY(__boot_start) +SEARCH_DIR(/usr/local/mrisc1-elf/lib); +/* Do we need any of these for elf? + __DYNAMIC = 0; */ +MEMORY +{ + rom (rx) : ORIGIN = 0x000000, LENGTH = 8M + frame-buffer (w) : ORIGIN = 0x800000, LENGTH = 64K + ram (w) : ORIGIN = 0xc00000, LENGTH = 4M + dma-ram (w) : ORIGIN = 0x1000000, LENGTH = 16M +} +SECTIONS +{ + /* Read-only sections, merged into text segment: */ + PROVIDE (__executable_start = 0x0); . = 0x0; + .interp : { *(.interp) } + .hash : { *(.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + .rel.init : { *(.rel.init) } + .rela.init : { *(.rela.init) } + .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } + .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } + .rel.fini : { *(.rel.fini) } + .rela.fini : { *(.rela.fini) } + .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } + .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } + .rel.data.rel.ro : { *(.rel.data.rel.ro*) } + .rela.data.rel.ro : { *(.rel.data.rel.ro*) } + .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } + .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } + .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } + .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } + .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } + .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } + .rel.ctors : { *(.rel.ctors) } + .rela.ctors : { *(.rela.ctors) } + .rel.dtors : { *(.rel.dtors) } + .rela.dtors : { *(.rela.dtors) } + .rel.got : { *(.rel.got) } + .rela.got : { *(.rela.got) } + .rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) } + .rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) } + .rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) } + .rela.sbss : { *(.rela.sbss .rela.sbss.* .rel.gnu.linkonce.sb.*) } + .rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) } + .rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) } + .rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) } + .rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) } + .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } + .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } + .rel.plt : { *(.rel.plt) } + .rela.plt : { *(.rela.plt) } + + .startup : { *startup-64-001.o(.startup) } >rom =0 + + .init : { KEEP (*(.init)) } >rom =0 + .plt : { *(.plt) } >rom + .text : + { + *startup-64-001.o(.text) + *(.text .stub .text.* .gnu.linkonce.t.*) + /* .gnu.warning sections are handled specially by elf32.em. */ + *(.gnu.warning) + } >rom =0 + .fini : + { + KEEP (*(.fini)) + } >rom =0 + PROVIDE (__etext = .); + PROVIDE (_etext = .); + PROVIDE (etext = .); + .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } >rom + .rodata1 : { *(.rodata1) } >rom + + /* Data starting here needs to be copied from ROM to the frame buffer. */ + /* Section .sdata2 is used as the beginning marker of the frame buffer + address as well as the start of the data that needs to be copied. */ + .sdata2 : AT (ADDR(.rodata1) + SIZEOF(.rodata1)) + { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } >frame-buffer + .sbss2 : AT (LOADADDR(.sdata2) + SIZEOF(.sdata2)) + { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } >frame-buffer + .eh_frame_hdr : AT (LOADADDR(.sbss2) + SIZEOF(.sbss2)) + { *(.eh_frame_hdr) } >frame-buffer + .eh_frame : AT (LOADADDR(.eh_frame_hdr) + SIZEOF(.eh_frame_hdr)) + ONLY_IF_RO { KEEP (*(.eh_frame)) } >frame-buffer + .gcc_except_table : AT (LOADADDR(.eh_frame) + SIZEOF(.eh_frame)) + ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >frame-buffer + /* Adjust the address for the data segment. We want to adjust up to + the same address within the page on the next page up. */ + . = ALIGN(256) + (. & (256 - 1)); + /* Exception handling */ + .eh_frame : AT (LOADADDR(.eh_frame_hdr) + SIZEOF(.eh_frame_hdr)) + ONLY_IF_RW { KEEP (*(.eh_frame)) } >frame-buffer + .gcc_except_table : AT (LOADADDR(.eh_frame) + SIZEOF(.eh_frame)) + ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) } >frame-buffer + /* Thread Local Storage sections */ + .tdata : AT (LOADADDR(.gcc_except_table) + SIZEOF(.gcc_except_table)) + { *(.tdata .tdata.* .gnu.linkonce.td.*) } >frame-buffer + .tbss : AT (LOADADDR(.tdata) + SIZEOF(.tdata)) + { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >frame-buffer + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(32 / 8); + PROVIDE (__preinit_array_start = .); + .preinit_array : AT (LOADADDR(.tbss) + SIZEOF(.tbss)) + { *(.preinit_array) } >frame-buffer + PROVIDE (__preinit_array_end = .); + PROVIDE (__init_array_start = .); + .init_array : AT (LOADADDR(.preinit_array) + SIZEOF(.preinit_array)) + { *(.init_array) } >frame-buffer + PROVIDE (__init_array_end = .); + PROVIDE (__fini_array_start = .); + .fini_array : AT (LOADADDR(.init_array) + SIZEOF(.init_array)) + { *(.fini_array) } >frame-buffer + PROVIDE (__fini_array_end = .); + .ctors : AT (LOADADDR(.fini_array) + SIZEOF(.fini_array)) + { + /* gcc uses crtbegin.o to find the start of + the constructors, so we make sure it is + first. Because this is a wildcard, it + doesn't matter if the user does not + actually link against crtbegin.o; the + linker won't look for a file to match a + wildcard. The wildcard also means that it + doesn't matter which directory crtbegin.o + is in. */ + KEEP (*crtbegin*.o(.ctors)) + /* We don't want to include the .ctor section from + from the crtend.o file until after the sorted ctors. + The .ctor section from the crtend file contains the + end of ctors marker and it must be last */ + KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + } >frame-buffer + .dtors : AT (LOADADDR(.ctors) + SIZEOF(.ctors)) + { + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + } >frame-buffer + .jcr : AT (LOADADDR(.dtors) + SIZEOF(.dtors)) + { KEEP (*(.jcr)) } >frame-buffer + .data.rel.ro : AT (LOADADDR(.jcr) + SIZEOF(.jcr)) + { *(.data.rel.ro.local) *(.data.rel.ro*) } >frame-buffer + .dynamic : AT (LOADADDR(.data.rel.ro) + SIZEOF(.data.rel.ro)) + { *(.dynamic) } >frame-buffer + + /* DJK - Re-align the data section from the read-only section. */ + . = ALIGN(16) + (. & (16 - 1)); + PROVIDE (_data = .); + .data : AT (LOADADDR(.dynamic) + SIZEOF(.dynamic)) + { + *(.data .data.* .gnu.linkonce.d.*) + KEEP (*(.gnu.linkonce.d.*personality*)) + SORT(CONSTRUCTORS) + } >frame-buffer + .data1 : AT (LOADADDR(.data) + SIZEOF(.data)) + { *(.data1) } >frame-buffer + .got : AT (LOADADDR(.data1) + SIZEOF(.data1)) + { *(.got.plt) *(.got) } + + /* We want the small data sections together, so single-instruction offsets + can access them all, and initialized data all before uninitialized, so + we can shorten the on-disk segment size. */ + .sdata : AT (LOADADDR(.got) + SIZEOF(.got)) + { *(.sdata .sdata.* .gnu.linkonce.s.*) } >frame-buffer + _edata = .; + PROVIDE ( edata = . ) ; + + _fbdata_start = LOADADDR(.sdata2) ; + _fbdata_end = LOADADDR(.sdata) + SIZEOF(.sdata) - 4 ; + + PROVIDE (__FRAME_BUFFER_START = ADDR(.sdata2)); + PROVIDE (__FRAME_BUFFER_SIZE = 0x10000); + PROVIDE (__FRAME_BUFFER_END = __FRAME_BUFFER_START + __FRAME_BUFFER_SIZE); + + .sbss : AT (LOADADDR(.sdata) + SIZEOF(.sdata)) + { + PROVIDE (__sbss_start = .); + PROVIDE (___sbss_start = .); + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.scommon) + PROVIDE (__sbss_end = .); + PROVIDE (___sbss_end = .); + } >frame-buffer + .bss : AT (LOADADDR(.sbss) + SIZEOF(.sbss)) + { + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + /* Align here to ensure that the .bss section occupies space up to + _end. Align after .bss to ensure correct alignment even if the + .bss section disappears because there are no input sections. */ + . = ALIGN(32 / 8); + } >frame-buffer + . = ALIGN(32 / 8); + __bss_start = ADDR(.sbss) ; + __bss_end = __bss_start + SIZEOF(.sbss) + SIZEOF(.bss) - 4 ; + _end = .; + PROVIDE (end = .); + + PROVIDE ( _extdata_start = ADDR(.bss) + SIZEOF(.bss)); + .extdata : AT ( LOADADDR(.bss) + SIZEOF(.bss)) + { + *(.extdata) + } >ram + PROVIDE (_extdata_end = _extdata_start + SIZEOF(.extdata) - 4 ); + + .extbss : AT ( LOADADDR(.extdata) + SIZEOF(.extdata)) + { + _extbss_start = .; + *(.extbss); + . = ALIGN(4); + _extbss_end = .; + } >ram + . = ALIGN(4); + + PROVIDE (__EXTERNAL_MEMORY_START = 0xc00000); + + .dma : + { + _dma_start = .; + *(.dma) + _dma_end = .; + } >dma-ram + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + + PROVIDE (__stack = 0x80fff0); + + .stack (DEFINED(__stack) ? __stack : 0x7FFFF0) : + { + __stack = .; + *(.stack) + LONG(0xdeaddead) + } + /DISCARD/ : { *(.note.GNU-stack) } +} diff --git a/libgloss/mt/Makefile.in b/libgloss/mt/Makefile.in new file mode 100644 index 000000000..e2fd1f838 --- /dev/null +++ b/libgloss/mt/Makefile.in @@ -0,0 +1,127 @@ +# Copyright (c) 2001 Red Hat, Inc. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. + +# Makefile for libgloss/ms1. This is the board support for the Morpho ms1. + +VPATH = @srcdir@ @srcdir@/.. +srcdir = @srcdir@ +objdir = . +srcroot = $(srcdir)/../.. +objroot = $(objdir)/../.. + +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +host_alias = @host_alias@ +target_alias = @target_alias@ + +bindir = @bindir@ +libdir = @libdir@ +tooldir = $(exec_prefix)/$(target_alias) + +# Multilib support variables. +# TOP is used instead of MULTI{BUILD,SRC}TOP. +MULTIDIRS = +MULTISUBDIR = +MULTIDO = true +MULTICLEAN = true + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ + +SHELL = /bin/sh + +CC = @CC@ + +AS = @AS@ +AR = @AR@ +LD = @LD@ +RANLIB = @RANLIB@ +AR_FLAGS = rc + +OBJDUMP = `if [ -f ${objroot}/../binutils/objdump ] ; \ + then echo ${objroot}/../binutils/objdump ; \ + else t='$(program_transform_name)'; echo objdump | sed -e $$t ; fi` +OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \ + then echo ${objroot}/../binutils/objcopy ; \ + else t='$(program_transform_name)'; echo objcopy | sed -e $$t ; fi` + +SCRIPTS = 16-002.ld 16-003.ld 64-001.ld +CRT0 = crt0.o crt0-64-001.o crt0-16-002.o crt0-16-003.o \ + startup-64-001.o startup-16-002.o startup-16-003.o \ + exit.o exit-64-001.o exit-16-002.o exit-16-003.o + +SIM_BSP = libsim.a +SIM_OBJS = access.o chmod.o close.o \ + fstat.o getpid.o gettime.o isatty.o kill.o lseek.o open.o \ + read.o sbrk.o stat.o time.o times.o trap.o unlink.o utime.o write.o + +#### Host specific Makefile fragment comes in here. +@host_makefile_frag@ + +all: $(CRT0) $(SIM_BSP) + +$(SIM_BSP): $(SIM_OBJS) + $(AR) $(ARFLAGS) $@ $? + $(RANLIB) $@ + +access.o: $(srcdir)/access.c +chmod.o: $(srcdir)/chmod.c +close.o: $(srcdir)/close.c +fstat.o: $(srcdir)/fstat.c +getpid.o: $(srcdir)/getpid.c +gettime.o: $(srcdir)/gettime.c +isatty.o: $(srcdir)/isatty.c +kill.o: $(srcdir)/kill.c +lseek.o: $(srcdir)/lseek.c +open.o: $(srcdir)/open.c +read.o: $(srcdir)/read.c +sbrk.o: $(srcdir)/sbrk.c +stat.o: $(srcdir)/stat.c +time.o: $(srcdir)/time.c +times.o: $(srcdir)/times.c +unlink.o: $(srcdir)/unlink.c +utime.o: $(srcdir)/utime.c +write.o: $(srcdir)/write.c +crt0.o: $(srcdir)/crt0.S +crt0-16-002.o: $(srcdir)/crt0-16-002.S +crt0-16-003.o: $(srcdir)/crt0-16-003.S +crt0-64-001.o: $(srcdir)/crt0-64-001.S + +trap.o: $(srcdir)/trap.S + +install: $($(CPU)_INSTALL) + for c in $(CRT0); do \ + $(INSTALL_DATA) $$c $(tooldir)/lib${MULTISUBDIR}/$$c ; \ + done; + $(INSTALL_DATA) $(SIM_BSP) $(tooldir)/lib${MULTISUBDIR}/$(SIM_BSP) + for c in $(SCRIPTS); do \ + $(INSTALL_DATA) $(srcdir)/$$c $(tooldir)/lib/$$c ; \ + done; + +clean mostlyclean: + rm -f *.o *.a + +distclean maintainer-clean realclean: clean + rm -f Makefile config.cache config.log config.status + +.PHONY: info dvi doc install-info clean-info +info doc dvi: +install-info: +clean-info: + +Makefile: Makefile.in config.status @host_makefile_frag_path@ + $(SHELL) config.status + +config.status: configure + $(SHELL) config.status --recheck diff --git a/libgloss/mt/access.c b/libgloss/mt/access.c new file mode 100644 index 000000000..8e08b3a7f --- /dev/null +++ b/libgloss/mt/access.c @@ -0,0 +1,33 @@ +/* This is file ACCESS.C */ +/* + * Copyright (C) 1993 DJ Delorie + * All rights reserved. + * + * Redistribution and use in source and binary forms is permitted + * provided that the above copyright notice and following paragraph are + * duplicated in all such forms. + * + * This file is distributed WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include +#include +#include + +int access(const char *fn, int flags) +{ + struct stat s; + if (stat(fn, &s)) + return -1; + if (s.st_mode & S_IFDIR) + return 0; + if (flags & W_OK) + { + if (s.st_mode & S_IWRITE) + return 0; + return -1; + } + return 0; +} + diff --git a/libgloss/mt/chmod.c b/libgloss/mt/chmod.c new file mode 100644 index 000000000..8200506fe --- /dev/null +++ b/libgloss/mt/chmod.c @@ -0,0 +1,11 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" + + +int +chmod (const char *path, mode_t mode) +{ + return TRAP0 (SYS_chmod, path, mode, 0); +} diff --git a/libgloss/mt/close.c b/libgloss/mt/close.c new file mode 100644 index 000000000..02ee07287 --- /dev/null +++ b/libgloss/mt/close.c @@ -0,0 +1,11 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" + + +int +close (int file) +{ + return TRAP0 (SYS_close, file, 0, 0); +} diff --git a/libgloss/mt/configure b/libgloss/mt/configure new file mode 100755 index 000000000..5d272c9f8 --- /dev/null +++ b/libgloss/mt/configure @@ -0,0 +1,1204 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=crt0.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +if test "${enable_shared}" = "yes" ; then + echo "Shared libraries not supported for cross compiling, ignored" +fi + +if test "$srcdir" = "." ; then + if test "${with_target_subdir}" != "." ; then + libgloss_topdir="${srcdir}/${with_multisrctop}../../.." + else + libgloss_topdir="${srcdir}/${with_multisrctop}../.." + fi +else + libgloss_topdir="${srcdir}/../.." +fi +ac_aux_dir= +for ac_dir in $libgloss_topdir $srcdir/$libgloss_topdir; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in $libgloss_topdir $srcdir/$libgloss_topdir" 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + + +# Do some error checking and defaulting for the host and target type. +# The inputs are: +# configure --host=HOST --target=TARGET --build=BUILD NONOPT +# +# The rules are: +# 1. You are not allowed to specify --host, --target, and nonopt at the +# same time. +# 2. Host defaults to nonopt. +# 3. If nonopt is not specified, then host defaults to the current host, +# as determined by config.guess. +# 4. Target and build default to nonopt. +# 5. If nonopt is not specified, then target and build default to host. + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +case $host---$target---$nonopt in +NONE---*---* | *---NONE---* | *---*---NONE) ;; +*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; +esac + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:587: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + +echo $ac_n "checking target system type""... $ac_c" 1>&6 +echo "configure:608: checking target system type" >&5 + +target_alias=$target +case "$target_alias" in +NONE) + case $nonopt in + NONE) target_alias=$host_alias ;; + *) target_alias=$nonopt ;; + esac ;; +esac + +target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` +target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$target" 1>&6 + +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:626: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + +test "$host_alias" != "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:680: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:744: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:774: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:823: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:847: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +AS=${AS-as} + +AR=${AR-ar} + +LD=${LD-ld} + +# Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:884: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +host_makefile_frag=${srcdir}/../config/default.mh + +host_makefile_frag_path=$host_makefile_frag + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS </dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@target@%$target%g +s%@target_alias@%$target_alias%g +s%@target_cpu@%$target_cpu%g +s%@target_vendor@%$target_vendor%g +s%@target_os@%$target_os%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@CC@%$CC%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@LD@%$LD%g +s%@RANLIB@%$RANLIB%g +s%@host_makefile_frag_path@%$host_makefile_frag_path%g +/@host_makefile_frag@/r $host_makefile_frag +s%@host_makefile_frag@%%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +. ${libgloss_topdir}/config-ml.in +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/libgloss/mt/configure.in b/libgloss/mt/configure.in new file mode 100644 index 000000000..877f6a06e --- /dev/null +++ b/libgloss/mt/configure.in @@ -0,0 +1,90 @@ +dnl Process this file with autoconf to produce a configure script. +AC_PREREQ(2.5)dnl +AC_INIT(crt0.S) + +if test "${enable_shared}" = "yes" ; then + echo "Shared libraries not supported for cross compiling, ignored" +fi + +if test "$srcdir" = "." ; then + if test "${with_target_subdir}" != "." ; then + libgloss_topdir="${srcdir}/${with_multisrctop}../../.." + else + libgloss_topdir="${srcdir}/${with_multisrctop}../.." + fi +else + libgloss_topdir="${srcdir}/../.." +fi +AC_CONFIG_AUX_DIR($libgloss_topdir) + +AC_CANONICAL_SYSTEM +AC_ARG_PROGRAM + +AC_PROG_INSTALL + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +AS=${AS-as} +AC_SUBST(AS) +AR=${AR-ar} +AC_SUBST(AR) +LD=${LD-ld} +AC_SUBST(LD) +AC_PROG_RANLIB + +host_makefile_frag=${srcdir}/../config/default.mh + +dnl We have to assign the same value to other variables because autoconf +dnl doesn't provide a mechanism to substitute a replacement keyword with +dnl arbitrary data or pathnames. +dnl +host_makefile_frag_path=$host_makefile_frag +AC_SUBST(host_makefile_frag_path) +AC_SUBST_FILE(host_makefile_frag) + +AC_OUTPUT(Makefile, +. ${libgloss_topdir}/config-ml.in, +srcdir=${srcdir} +target=${target} +ac_configure_args="${ac_configure_args} --enable-multilib" +CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} +libgloss_topdir=${libgloss_topdir} +) diff --git a/libgloss/mt/crt0-16-002.S b/libgloss/mt/crt0-16-002.S new file mode 100644 index 000000000..ac2727e66 --- /dev/null +++ b/libgloss/mt/crt0-16-002.S @@ -0,0 +1,111 @@ +; crt0_2.s - Startup code for the mrisc1. This code initializes the C +; run-time model. +; +; Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +; +; The authors hereby grant permission to use, copy, modify, distribute, +; and license this software and its documentation for any purpose, provided +; that existing copyright notices are retained in all copies and that this +; notice is included verbatim in any distributions. No written agreement, +; license, or royalty fee is required for any of the authorized uses. +; Modifications to this software may be copyrighted by their authors +; and need not follow the licensing terms described here, provided that +; the new terms are clearly indicated on the first page of each file where +; they apply. +; + + ; Create a label for the start of the eh_frame section. + .section .eh_frame +__eh_frame_begin: + + .text + .global _start +_start: + ;; Initialize the stack pointer + ldui sp, #%hi16(__stack) + addui sp, sp, #%lo16(__stack) + or fp, sp, sp + ;; Zero the bss space + ldui r9, #%hi16(__bss_start) + addui r9, r9, #%lo16(__bss_start) + ldui r10, #%hi16(__bss_end) + addui r10, r10, #%lo16(__bss_end) + or r0, r0, r0 + brle r10, r9, .Lnext1 + or r0, r0, r0 +.Lcpy0: + stw r0, r9, #0 + addi r9, r9, #4 + or r0, r0, r0 ; nop + brle r9, r10, .Lcpy0 + or r0, r0, r0 ; nop + +.Lnext1: + ;; Copy data from ROM to Frame Buffer (on-chip memory) + ldui r9, #%hi16(_fbdata_start) + ori r9, r9, #%lo16(_fbdata_start) + ldui r10, #%hi16(_fbdata_end) + ori r10, r10, #%lo16(_fbdata_end) + ldui r11, #%hi16(_fbdata_vma) + brle r10, r9, .Lnext2 + ori r11, r11, #%lo16(_fbdata_vma) +.Lcpy1: + ldw r5, r9, #$0 + addi r9, r9, #$4 + stw r5, r11, #$0 + brlt r9, r10, .Lcpy1 + addi r11, r11, #$4 + +.Lnext2: + ;; Zero the frame buffer bss section + ldui r9, #%hi16(_fbbss_start) + ori r9, r9, #%lo16(_fbbss_start) + ldui r10, #%hi16(_fbbss_end) + ori r10, r10, #%lo16(_fbbss_end) + or r0, r0, r0 + brle r10, r9, .Lnext3 + or r0, r0, r0 +.Lcpy2: + stw r0, r9, #$0 + addi r9, r9, #$4 + or r0, r0, r0 + brle r9, r10, .Lcpy2 + or r0, r0, r0 + +.Lnext3: + ;; Call global and static constructors + ldui r10, #%hi16(_init) + ori r10, r10, #%lo16(_init) + or r0, r0, r0 ; nop + jal r14, r10 + or r0, r0, r0 ; nop + + ;; Call main + ldui r10, #%hi16(main) + ori r10, r10, #%lo16(main) + or r0, r0, r0 ; nop + jal r14, r10 + or r0, r0, r0 ; nop + + ;; DJK - Added 12Nov01. Pass main's return value to exit. + or r1, r11, r0 + + ;; Jump to exit + ldui r10, #%hi16(exit) + ori r10, r10, #%lo16(exit) + or r0, r0, r0 ; nop + jal r14, r10 + or r0, r0, r0 ; nop + + ;; Exit does not return, however, this code is to catch an + ;; error if it does. Set the processor into sleep mode. + ori r1, r0, #$1 + stw r1, r0, #%lo16(_DEBUG_HALT_REG) + or r0, r0, r0 + or r0, r0, r0 + or r0, r0, r0 + or r0, r0, r0 + or r0, r0, r0 +.Lend: + jmp .Lend + or r0, r0, r0 diff --git a/libgloss/mt/crt0-16-003.S b/libgloss/mt/crt0-16-003.S new file mode 100644 index 000000000..bd88bcc54 --- /dev/null +++ b/libgloss/mt/crt0-16-003.S @@ -0,0 +1,112 @@ +; crt0.s - Startup code for the mrisc1. This code initializes the C +; run-time model. +; +; +; Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +; +; The authors hereby grant permission to use, copy, modify, distribute, +; and license this software and its documentation for any purpose, provided +; that existing copyright notices are retained in all copies and that this +; notice is included verbatim in any distributions. No written agreement, +; license, or royalty fee is required for any of the authorized uses. +; Modifications to this software may be copyrighted by their authors +; and need not follow the licensing terms described here, provided that +; the new terms are clearly indicated on the first page of each file where +; they apply. +; + + ; Create a label for the start of the eh_frame section. + .section .eh_frame +__eh_frame_begin: + + .text + .global _start +_start: + ;; Initialize the stack pointer + ldui sp, #%hi16(__stack) + addui sp, sp, #%lo16(__stack) + or fp, sp, sp + ;; Zero the bss space + ldui r9, #%hi16(__bss_start) + addui r9, r9, #%lo16(__bss_start) + ldui r10, #%hi16(__bss_end) + addui r10, r10, #%lo16(__bss_end) + or r0, r0, r0 + brle r10, r9, .Lnext1 + or r0, r0, r0 +.Lcpy0: + stw r0, r9, #0 + addi r9, r9, #4 + or r0, r0, r0 ; nop + brle r9, r10, .Lcpy0 + or r0, r0, r0 ; nop + +.Lnext1: + ;; Copy data from ROM to Frame Buffer (on-chip memory) + ldui r9, #%hi16(_fbdata_start) + ori r9, r9, #%lo16(_fbdata_start) + ldui r10, #%hi16(_fbdata_end) + ori r10, r10, #%lo16(_fbdata_end) + ldui r11, #%hi16(_fbdata_vma) + brle r10, r9, .Lnext2 + ori r11, r11, #%lo16(_fbdata_vma) +.Lcpy1: + ldw r5, r9, #$0 + addi r9, r9, #$4 + stw r5, r11, #$0 + brlt r9, r10, .Lcpy1 + addi r11, r11, #$4 + +.Lnext2: + ;; Zero the frame buffer bss section + ldui r9, #%hi16(_fbbss_start) + ori r9, r9, #%lo16(_fbbss_start) + ldui r10, #%hi16(_fbbss_end) + ori r10, r10, #%lo16(_fbbss_end) + or r0, r0, r0 + brle r10, r9, .Lnext3 + or r0, r0, r0 +.Lcpy2: + stw r0, r9, #$0 + addi r9, r9, #$4 + or r0, r0, r0 + brle r9, r10, .Lcpy2 + or r0, r0, r0 + +.Lnext3: + ;; Call global and static constructors + ldui r10, #%hi16(_init) + ori r10, r10, #%lo16(_init) + or r0, r0, r0 ; nop + jal r14, r10 + or r0, r0, r0 ; nop + + ;; Call main + ldui r10, #%hi16(main) + ori r10, r10, #%lo16(main) + or r0, r0, r0 ; nop + jal r14, r10 + or r0, r0, r0 ; nop + + ;; DJK - Added 12Nov01. Pass main's return value to exit. + or r1, r11, r0 + + ;; Jump to exit + ldui r10, #%hi16(exit) + ori r10, r10, #%lo16(exit) + or r0, r0, r0 ; nop + jal r14, r10 + or r0, r0, r0 ; nop + + ;; Exit does not return, however, this code is to catch an + ;; error if it does. Set the processor into sleep mode. + ori r1, r0, #$1 + stw r1, r0, #%lo16(_DEBUG_HALT_REG) + or r0, r0, r0 + or r0, r0, r0 + or r0, r0, r0 + or r0, r0, r0 + or r0, r0, r0 +.Lend: + jmp .Lend + or r0, r0, r0 diff --git a/libgloss/mt/crt0-64-001.S b/libgloss/mt/crt0-64-001.S new file mode 100644 index 000000000..b78e7808e --- /dev/null +++ b/libgloss/mt/crt0-64-001.S @@ -0,0 +1,144 @@ +; crt0_2.s - Startup code for the mrisc1. This code initializes the C +; run-time model. +; +; 12Nov01 (DJK) - The return code from main was not being passed to exit(). +; Now it is passed as a parameter in R1. +; +; 10Sep01 (DJK) - The function exit() does not return. However, in the +; the case of device error (if the halt bit does not +; function properly, for instance), then a catch loop +; has been added. +; +; +; Copyright 2001, 2002, 2003, 2004 Morpho Technologies, Inc. +; + + ; Create a label for the start of the eh_frame section. + .section .eh_frame +__eh_frame_begin: + + .equ HALT_REG, 0x300 + .section .text + .global _start +_start: + ;; Initialize the stack pointer + ldui sp, #%hi16(__stack) + addui sp, sp, #%lo16(__stack) + or fp, sp, sp + + ;; Copy data from ROM to Frame Buffer (on-chip memory) + ldui r9, #%hi16(_fbdata_start) + ori r9, r9, #%lo16(_fbdata_start) + ldui r10, #%hi16(_fbdata_end) + ori r10, r10, #%lo16(_fbdata_end) + ldui r11, #%hi16(__FRAME_BUFFER_START) + brle r10, r9, .Lnext1 + ori r11, r11, #%lo16(__FRAME_BUFFER_START) +.Lcpy0: + ldw r5, r9, #$0 + addi r9, r9, #$4 + stw r5, r11, #$0 + brlt r9, r10, .Lcpy0 + addi r11, r11, #$4 + +.Lnext1: + ;; Copy data from ROM to External Memory (off-chip memory) + ldui r9, #%hi16(_extdata_start) + ori r9, r9, #%lo16(_extdata_start) + ldui r10, #%hi16(_extdata_end) + ori r10, r10, #%lo16(_extdata_end) + ldui r11, #%hi16(__EXTERNAL_MEMORY_START) + brle r10, r9, .Lnext2 + ori r11, r11, #%lo16(__EXTERNAL_MEMORY_START) +.Lcpy1: + ldw r5, r9, #$0 + addi r9, r9, #$4 + stw r5, r11, #$0 + brlt r9, r10, .Lcpy1 + addi r11, r11, #$4 + + +.Lnext2: + ;; Zero the bss space + ldui r9, #%hi16(__bss_start) + addui r9, r9, #%lo16(__bss_start) + ldui r10, #%hi16(__bss_end) + addui r10, r10, #%lo16(__bss_end) + or r0, r0, r0 + brle r10, r9, .Lnext3 + or r0, r0, r0 +.Lcpy2: + stw r0, r9, #0 + addi r9, r9, #4 + or r0, r0, r0 ; nop + brle r9, r10, .Lcpy2 + or r0, r0, r0 ; nop + +.Lnext3: + ;; Zero the external memory bss section + ldui r9, #%hi16(_extbss_start) + ori r9, r9, #%lo16(_extbss_start) + ldui r10, #%hi16(_extbss_end) + ori r10, r10, #%lo16(_extbss_end) + or r0, r0, r0 + brle r10, r9, .Lnext4 + or r0, r0, r0 +.Lcpy3: + stw r0, r9, #$0 + addi r9, r9, #$4 + or r0, r0, r0 + brle r9, r10, .Lcpy3 + or r0, r0, r0 + +.Lnext4: + ;; Call global and static constructors + ldui r10, #%hi16(_init) + ori r10, r10, #%lo16(_init) + or r0, r0, r0 ; nop + jal r14, r10 + or r0, r0, r0 ; nop + + ;; Setup destructors to be called from exit. + ;; (Just in case main never returns....) + ldui r10, #%hi16(atexit) + ori r10, r10, #%lo16(atexit) + ldui r1, #%hi16(_fini) + ori r1, r1, #%lo16(_fini) + or r0, r0, r0 ; nop + jal r14, r10 + or r0, r0, r0 ; nop + + ;; Initialise argc, argv and envp to empty + addi r1, r0, #0 + addi r2, r0, #0 + addi r3, r0, #0 + + ;; Call main + ldui r10, #%hi16(main) + ori r10, r10, #%lo16(main) + or r0, r0, r0 ; nop + jal r14, r10 + or r0, r0, r0 ; nop + + ;; DJK - Added 12Nov01. Pass main's return value to exit. + or r1, r11, r0 + + ;; Jump to exit + ldui r10, #%hi16(exit) + ori r10, r10, #%lo16(exit) + or r0, r0, r0 ; nop + jal r14, r10 + or r0, r0, r0 ; nop + + ;; Exit does not return, however, this code is to catch an + ;; error if it does. Set the processor into sleep mode. + ori r1, r0, #$1 + stw r1, r0, #HALT_REG + or r0, r0, r0 + or r0, r0, r0 + or r0, r0, r0 + or r0, r0, r0 + or r0, r0, r0 +.Lend: + jmp .Lend + or r0, r0, r0 diff --git a/libgloss/mt/crt0.S b/libgloss/mt/crt0.S new file mode 100644 index 000000000..276124f5c --- /dev/null +++ b/libgloss/mt/crt0.S @@ -0,0 +1,63 @@ +# Startup Code for the Morpho ms1 + +# Create a label for the start of the eh_frame section. + .section .eh_frame +__eh_frame_begin: + + .section .text + .global _start +_start: + + ;; Initialise the stack pointer + ldui sp, #%hi16(__stack) + addui sp, sp, #%lo16(__stack) + or fp, sp, sp + + ;; Zero the data space + ldui r9, #%hi16(_edata) + addui r9, r9, #%lo16(_edata) + ldui r10, #%hi16(_end) + addui r10, r10, #%lo16(_end) + addi r5, r0, #0 + +.L0: + stw r5, r9, #0 + addi r9, r9, #4 + or r0, r0, r0 ; nop + brle r9, r10, .L0 + or r0, r0, r0 ; nop + + ;; Call global and static constructors + ldui r10, #%hi16(_init) + addui r10, r10, #%lo16(_init) + or r0, r0, r0 ; nop + jal r14, r10 + or r0, r0, r0 ; nop + ;; Setup destructors to be called from exit. + ;; (Just in case main never returns....) + ldui r10, #%hi16(atexit) + addui r10, r10, #%lo16(atexit) + ldui r1, #%hi16(_fini) + addui r1, r1, #%lo16(_fini) + or r0, r0, r0 ; nop + jal r14, r10 + or r0, r0, r0 ; nop + + ;; Initialise argc, argv and envp to empty + addi r1, r0, #0 + addi r2, r0, #0 + addi r3, r0, #0 + + ;; Call main + ldui r10, #%hi16(main) + addui r10, r10, #%lo16(main) + or r0, r0, r0 ; nop + jal r14, r10 + or r0, r0, r0 ; nop + + ;; Jump to exit + ldui r10, #%hi16(exit) + addui r10, r10, #%lo16(exit) + or r0, r0, r0 ; nop + jal r14, r10 + or r0, r0, r0 ; nop diff --git a/libgloss/mt/exit-16-002.c b/libgloss/mt/exit-16-002.c new file mode 100644 index 000000000..ba048d977 --- /dev/null +++ b/libgloss/mt/exit-16-002.c @@ -0,0 +1,12 @@ +#include <_ansi.h> +#include +#include + + +void _exit (n) +{ + /* Set bit #0 in the _DEBUG_HALT_REG to trigger program exit to + the simulator. (The simulator will return a SIGQUIT signal.) */ + asm("ori r1, r0, #$1\n"); + asm("stw r1, r0, #$fffff300\n"); +} diff --git a/libgloss/mt/exit-16-003.c b/libgloss/mt/exit-16-003.c new file mode 100644 index 000000000..ba048d977 --- /dev/null +++ b/libgloss/mt/exit-16-003.c @@ -0,0 +1,12 @@ +#include <_ansi.h> +#include +#include + + +void _exit (n) +{ + /* Set bit #0 in the _DEBUG_HALT_REG to trigger program exit to + the simulator. (The simulator will return a SIGQUIT signal.) */ + asm("ori r1, r0, #$1\n"); + asm("stw r1, r0, #$fffff300\n"); +} diff --git a/libgloss/mt/exit-64-001.c b/libgloss/mt/exit-64-001.c new file mode 100644 index 000000000..97c7b8ce7 --- /dev/null +++ b/libgloss/mt/exit-64-001.c @@ -0,0 +1,12 @@ +#include <_ansi.h> +#include +#include + + +void _exit (n) +{ + /* Set bit #0 in the _DEBUG_HALT_REG to trigger program exit to + the simulator. (The simulator will return a SIGQUIT signal.) */ + asm("ori r1, r0, #$1\n"); + asm("stw r1, r0, #$300\n"); +} diff --git a/libgloss/mt/exit.c b/libgloss/mt/exit.c new file mode 100644 index 000000000..cc7983b3f --- /dev/null +++ b/libgloss/mt/exit.c @@ -0,0 +1,10 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" + + +void _exit (n) +{ + TRAP0 (SYS_exit, n, 0, 0); +} diff --git a/libgloss/mt/fstat.c b/libgloss/mt/fstat.c new file mode 100644 index 000000000..1d7d2dcf5 --- /dev/null +++ b/libgloss/mt/fstat.c @@ -0,0 +1,14 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" + + +int +fstat (int file, + struct stat *st) +{ + st->st_mode = S_IFCHR; + st->st_blksize = 4096; + return 0; +} diff --git a/libgloss/mt/getpid.c b/libgloss/mt/getpid.c new file mode 100644 index 000000000..8d686b86a --- /dev/null +++ b/libgloss/mt/getpid.c @@ -0,0 +1,10 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" + + +getpid (n) +{ + return 1; +} diff --git a/libgloss/mt/gettime.c b/libgloss/mt/gettime.c new file mode 100644 index 000000000..1a0426744 --- /dev/null +++ b/libgloss/mt/gettime.c @@ -0,0 +1,12 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" +#include "sys/time.h" + + +int +_gettimeofday (struct timeval *tp, void *tzp) +{ + return TRAP0 (SYS_gettimeofday, tp, tzp, 0); +} diff --git a/libgloss/mt/isatty.c b/libgloss/mt/isatty.c new file mode 100644 index 000000000..0930a531e --- /dev/null +++ b/libgloss/mt/isatty.c @@ -0,0 +1,11 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" + + +isatty (fd) + int fd; +{ + return 1; +} diff --git a/libgloss/mt/kill.c b/libgloss/mt/kill.c new file mode 100644 index 000000000..e8ea43769 --- /dev/null +++ b/libgloss/mt/kill.c @@ -0,0 +1,11 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" + + +kill (n, m) +{ + return TRAP0 (SYS_exit, 0xdead, 0, 0); +} + diff --git a/libgloss/mt/lseek.c b/libgloss/mt/lseek.c new file mode 100644 index 000000000..783909104 --- /dev/null +++ b/libgloss/mt/lseek.c @@ -0,0 +1,14 @@ +#include <_ansi.h> +#include +#include +#include +#include "trap.h" + + +off_t +lseek (int file, + off_t ptr, + int dir) +{ + return TRAP0 (SYS_lseek, file, ptr, dir); +} diff --git a/libgloss/mt/open.c b/libgloss/mt/open.c new file mode 100644 index 000000000..d727bdd9f --- /dev/null +++ b/libgloss/mt/open.c @@ -0,0 +1,11 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" + + +int +open (const char *path, int flags, int mode) +{ + return TRAP0 (SYS_open, path, flags, mode); +} diff --git a/libgloss/mt/read.c b/libgloss/mt/read.c new file mode 100644 index 000000000..e7f37fafa --- /dev/null +++ b/libgloss/mt/read.c @@ -0,0 +1,12 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" + + +read (int file, + char *ptr, + size_t len) +{ + return TRAP0 (SYS_read, file, ptr, len); +} diff --git a/libgloss/mt/sbrk.c b/libgloss/mt/sbrk.c new file mode 100644 index 000000000..1f959c084 --- /dev/null +++ b/libgloss/mt/sbrk.c @@ -0,0 +1,24 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" + + +caddr_t +sbrk (size_t incr) +{ + extern char end; /* Defined by the linker */ + static char *heap_end; + char *prev_heap_end; + + char *sp = (char *) &sp; + + if (heap_end == 0) + { + heap_end = &end; + } + prev_heap_end = heap_end; + heap_end += incr; + + return (caddr_t) prev_heap_end; +} diff --git a/libgloss/mt/startup-16-002.S b/libgloss/mt/startup-16-002.S new file mode 100644 index 000000000..475a120bd --- /dev/null +++ b/libgloss/mt/startup-16-002.S @@ -0,0 +1,628 @@ +/* + * interrupt_vectors.s -- the interrupt handler jump table. + * + * + * There are a total of 32 interrupt vector possible, however, only + * 11 of those are currently used (the others are reserved). The + * order of vectors is as follows: + * + * 1. Boot Vector. Vector for power-on/reset. + * 2. Software Vector. Vector for handling the SI instruction (an + * explicit interrupt caused by software). + * 3. Break Vector. Vector for handling the Break instruction. + * 4. Device 0 Vector. Service vector for device zero. + * 5. Device 1 Vector. Service vector for device one. + * 6. Device 2 Vector. Service vector for device two. + * 7. Device 3 Vector. Service vector for device three. + * 8. Device 4 Vector. Service vector for device four. + * 9. Device 5 Vector. Service vector for device five. + * 10. Device 6 Vector. Service vector for device six. + * 11. Device 7 Vector. Service vector for device seven. + * + * The rest of the interrupt vectors are reserved for future use. + * + * + * Each jump table entry consists of the following two instructions: + * + * jmp Label ; Label as appropriate + * nop ; implemented as or r0,r0,r0 + * + * The following labels are reserved for the vectors named above, + * respectively: + * + * _BOOTIVEC, _SOFTIVEC, _BRKIVEC, _DEV0IVEC, _DEV1IVEC, _DEV2IVEC, + * _DEV3IVEC, _DEV4IVEC, _DEV5IVEC, _DEV6IVEC, _DEV7IVEC + * + * + * + * Copyright (c) 2001, 2002, 2003, 2004 Morpho Technologies + * + */ + + .section .startup, "a", @progbits + .global __boot_start +__boot_start: +_INTERRUPT_VECTOR_TABLE: + jmp _BOOTIVEC ; Boot vector + or r0, r0, r0 + jmp _SOFTIVEC ; Vector for SI instruction + or r0,r0,r0 + jmp _BRKIVEC ; Vector for Break instruction + or r0,r0,r0 + ; The illegal instruction trap is not implemented. +_RESERVED1_IVEC: + jmp _RESERVED1_IVEC ; Vector for illegal instruction + or r0,r0,r0 + jmp _OVFIVEC ; Vector for overflow exception + or r0,r0,r0 +_RESERVED2_IVEC: + jmp _RESERVED2_IVEC + or r0,r0,r0 +_RESERVED3_IVEC: + jmp _RESERVED3_IVEC + or r0,r0,r0 +_RESERVED4_IVEC: + jmp _RESERVED4_IVEC + or r0,r0,r0 + + .text + + .equ SI_IOPORT_ADR, _DEBUG_SW_SYSREQ_REG + .equ SI_IOPORT_BIT, 0x1 + .equ BRK_IOPORT_ADR, _DEBUG_BREAK_REG + .equ BRK_IOPORT_BIT, 0x1 + + .global _BOOTIVEC +_BOOTIVEC: + ; Initialize the interrupt controller's interrupt vector registers + ldui r1, #%hi16(_IVEC_DEFAULT) + ori r1, r1, #%lo16(_IVEC_DEFAULT) + stw r1, r0, #%lo16(_DEV0_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV1_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV2_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV3_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV4_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV5_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV6_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV7_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV8_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV9_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV10_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV11_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV12_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV13_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV14_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV15_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV16_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV17_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV18_INTERRUPT_REG) + + ; Statically initialized data must be copied from ROM to RAM. + ; This is done in the C run-time start-up code (crt0.o). + + ; Jump to the beginning of the application and enable interrupts. + jmp _start + ei + + + + ; Handler for the SI instruction. To perform a system call, the + ; C model uses a trapping mechanism which executes an SI instruction. + ; The Morpho Technologies simulator simply performs a branch to + ; this vector to simulate the SI instruction (this is as the hardware + ; behaves). In order to trigger the simulator that a system call + ; is needed a write into the I/O register at address $40005 to + ; set bit #2 (0x4) is necessary. + ; + ; The above address has been changed to 0x00031C and the bit number + ; is zero. (The manifest constants have been changed to reflect this.) + .global _SOFTIVEC +_SOFTIVEC: + ; Build a frame to save registers. + subi sp, sp, #$8 + stw r9, sp, #$4 + ldui r9, #%hi16(SI_IOPORT_ADR) + stw r10, sp, #$0 + ori r9, r9, #%lo16(SI_IOPORT_ADR) + ori r10, r0, #SI_IOPORT_BIT + stw r10, r9, #$0 + or r0, r0, r0 ; SYS_call is handled by simulator here... + ldw r10, sp, #$0 + or r0, r0, r0 + ldw r9, sp, #$4 + reti r14 + addi sp, sp, #$8 + + + + ; Handler for BREAK instruction. This handler triggers the simulator + ; to send a SIGTRAP signal to gdb by writing to the I/O register at + ; address $40005, setting bit #0 (0x1). + ; + ; The above address has been changed to 0x000304 and the bit number + ; is zero. (The manifest constants have been changed to reflect this.) + .global _BRKIVEC +_BRKIVEC: + ; Build a frame to save registers. + subi sp, sp, #$8 + stw r9, sp, #$4 + ldui r9, #%hi16(BRK_IOPORT_ADR) + stw r10, sp, #$0 + ori r9, r9, #%lo16(BRK_IOPORT_ADR) + ori r10, r0, #BRK_IOPORT_BIT + stw r10, r9, #$0 + or r0, r0, r0 + or r0, r0, r0 + or r0, r0, r0 + or r0, r0, r0 + or r0, r0, r0 + ldw r10, sp, #$0 + ldw r9, sp, #$4 + reti r15 + addi sp, sp, #$8 + + + ; The documentation is lacking in the specification of the Overflow + ; Exception generation. The address of the instruction causing the + ; overflow is placed into R15 and the overflow exception interrupt + ; is triggered. So, to continue execution, return to the address + ; of the next instruction (i.e., R15 + one instruction). +_OVFIVEC: + addi r15, r15, #$4 + or r0, r0, r0 + reti r15 + or r0, r0, r0 + + + .global _IVEC_DEFAULT +_IVEC_DEFAULT: + reti r15 + or r0, r0, r0 + + + .section .internal_io, "a", @progbits + .fill 256 ; Fill the first page. + + ; This is the memory-mapped I/O region. + + ; Hardware Interrupt Registers + ;.org 0xfff100 + .global _DEV0_INTERRUPT_REG +_DEV0_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV1_INTERRUPT_REG +_DEV1_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV2_INTERRUPT_REG +_DEV2_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV3_INTERRUPT_REG +_DEV3_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV4_INTERRUPT_REG +_DEV4_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV5_INTERRUPT_REG +_DEV5_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV6_INTERRUPT_REG +_DEV6_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV7_INTERRUPT_REG +_DEV7_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV8_INTERRUPT_REG +_DEV8_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV9_INTERRUPT_REG +_DEV9_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV10_INTERRUPT_REG +_DEV10_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV11_INTERRUPT_REG +_DEV11_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV12_INTERRUPT_REG +_DEV12_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV13_INTERRUPT_REG +_DEV13_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV14_INTERRUPT_REG +_DEV14_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV15_INTERRUPT_REG +_DEV15_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV16_INTERRUPT_REG +_DEV16_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV17_INTERRUPT_REG +_DEV17_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV18_INTERRUPT_REG +_DEV18_INTERRUPT_REG: + .word 0x00000000 + + ; 128 bytes minus ten registers (four bytes per register) + .fill (128 - 19 * 4) + + .global _INTERRUPT_MASK_REG +_INTERRUPT_MASK_REG: + .word 0x00000000 + + ; 128 bytes minus one register (four bytes per register) + .fill (128 - 1 * 4) + + + ;.org 0xfff200 + ; MorphoSys Decoder Registers + .global _MS_DEC_CIRC_BUFF_SEL_REG +_MS_DEC_CIRC_BUFF_SEL_REG: + .word 0x00000000 + + .global _MS_DEC_SKIP_FACTOR_REG +_MS_DEC_SKIP_FACTOR_REG: + .word 0x00000000 + + .global _MS_DEC_CUSTOM_PERM_REG +_MS_DEC_CUSTOM_PERM_REG: + .word 0x00000000 + + .global _MS_DEC_CTXT_BASE_REG +_MS_DEC_CTXT_BASE_REG: + .word 0x00000000 + + .global _MS_DEC_LOOKUP_TBL_REG +_MS_DEC_LOOKUP_TBL_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF0_END_REG +_MS_CIRC_BUFF0_END_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF0_SIZE_REG +_MS_CIRC_BUFF0_SIZE_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BLK0_END_REG +_MS_DATA_BLK0_END_REG: + .word 0x00000000 + + .global _MS_DATA_BLK0_SIZE_REG +_MS_DATA_BLK0_SIZE_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF1_END_REG +_MS_CIRC_BUFF1_END_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF1_SIZE_REG +_MS_CIRC_BUFF1_SIZE_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BLK1_END_REG +_MS_DATA_BLK1_END_REG: + .word 0x00000000 + + .global _MS_DATA_BLK1_SIZE_REG +_MS_DATA_BLK1_SIZE_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF2_END_REG +_MS_CIRC_BUFF2_END_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF2_SIZE_REG +_MS_CIRC_BUFF2_SIZE_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BLK2_END_REG +_MS_DATA_BLK2_END_REG: + .word 0x00000000 + + .global _MS_DATA_BLK2_SIZE_REG +_MS_DATA_BLK2_SIZE_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF3_END_REG +_MS_CIRC_BUFF3_END_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF3_SIZE_REG +_MS_CIRC_BUFF3_SIZE_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BLK3_END_REG +_MS_DATA_BLK3_END_REG: + .word 0x00000000 + + .global _MS_DATA_BLK3_SIZE_REG +_MS_DATA_BLK3_SIZE_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF4_END_REG +_MS_CIRC_BUFF4_END_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF4_SIZE_REG +_MS_CIRC_BUFF4_SIZE_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BLK4_END_REG +_MS_DATA_BLK4_END_REG: + .word 0x00000000 + + .global _MS_DATA_BLK4_SIZE_REG +_MS_DATA_BLK4_SIZE_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF5_END_REG +_MS_CIRC_BUFF5_END_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF5_SIZE_REG +_MS_CIRC_BUFF5_SIZE_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BLK5_END_REG +_MS_DATA_BLK5_END_REG: + .word 0x00000000 + + .global _MS_DATA_BLK5_SIZE_REG +_MS_DATA_BLK5_SIZE_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF6_END_REG +_MS_CIRC_BUFF6_END_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF6_SIZE_REG +_MS_CIRC_BUFF6_SIZE_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BLK6_END_REG +_MS_DATA_BLK6_END_REG: + .word 0x00000000 + + .global _MS_DATA_BLK6_SIZE_REG +_MS_DATA_BLK6_SIZE_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF7_END_REG +_MS_CIRC_BUFF7_END_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF7_SIZE_REG +_MS_CIRC_BUFF7_SIZE_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BLK7_END_REG +_MS_DATA_BLK7_END_REG: + .word 0x00000000 + + .global _MS_DATA_BLK7_SIZE_REG +_MS_DATA_BLK7_SIZE_REG: + .word 0x00000000 + + .global _MS_DEC_AUTO_INC0_REG +_MS_DEC_AUTO_INC0_REG: + .word 0x00000000 + + .global _MS_DEC_AUTO_INC1_REG +_MS_DEC_AUTO_INC1_REG: + .word 0x00000000 + + .global _MS_DEC_AUTO_INC2_REG +_MS_DEC_AUTO_INC2_REG: + .word 0x00000000 + + .global _MS_DEC_AUTO_INC3_REG +_MS_DEC_AUTO_INC3_REG: + .word 0x00000000 + + .global _MS_DEC_AUTO_INC4_REG +_MS_DEC_AUTO_INC4_REG: + .word 0x00000000 + + .global _MS_DEC_AUTO_INC5_REG +_MS_DEC_AUTO_INC5_REG: + .word 0x00000000 + + .global _MS_DEC_AUTO_INC6_REG +_MS_DEC_AUTO_INC6_REG: + .word 0x00000000 + + .global _MS_DEC_AUTO_INC7_REG +_MS_DEC_AUTO_INC7_REG: + .word 0x00000000 + + + ; 256 bytes minus forty-five registers (four bytes per register) + .fill (256 - 45 * 4) + + + + ;.org 0xfff300 + ; Debug Registers + .global _DEBUG_HALT_REG +_DEBUG_HALT_REG: + .word 0x00000000 + + .global _DEBUG_BREAK_REG +_DEBUG_BREAK_REG: + .word 0x00000000 + + ; There are five reserved registers. + .fill (5 * 4) + + .global _DEBUG_SW_SYSREQ_REG +_DEBUG_SW_SYSREQ_REG: + .word 0x00000000 + + ; 256 bytes minus eight registers (four bytes per register) + .fill (256 - 8 * 4) + + + + ;.org 0xfff400 + ; Sequence Generator Registers + .global _SEQ_GEN_CTRL_REG +_SEQ_GEN_CTRL_REG: + .word 0x00000000 + + .global _SEQ_GEN_MASK_REGS +_SEQ_GEN_MASK_REGS: + ; The mask registers consume two pages (less one control register). + ; 512 bytes minus one register (four bytes per register). + .fill (256 + 256 - 1 * 4) + + + + ;.org 0xfff600 + ; Timer Registers + .global _TIMER0_VAL_REG +_TIMER0_VAL_REG: + .word 0x00000000 + + .global _TIMER1_VAL_REG +_TIMER1_VAL_REG: + .word 0x00000000 + + .global _TIMER2_VAL_REG +_TIMER2_VAL_REG: + .word 0x00000000 + + .global _TIMER3_VAL_REG +_TIMER3_VAL_REG: + .word 0x00000000 + + ; 256 bytes minus four registers (four bytes per register) + .fill (256 - 4 * 4) + + + + ;.org 0xfff700 + ; Output Line Control Registers + .global _OUTPUT0_CTRL +_OUTPUT0_CTRL: + .word 0x00000000 + + .global _OUTPUT1_CTRL +_OUTPUT1_CTRL: + .word 0x00000000 + + .global _OUTPUT2_CTRL +_OUTPUT2_CTRL: + .word 0x00000000 + + .global _OUTPUT3_CTRL +_OUTPUT3_CTRL: + .word 0x00000000 + + .global _OUTPUT4_CTRL +_OUTPUT4_CTRL: + .word 0x00000000 + + .global _OUTPUT5_CTRL +_OUTPUT5_CTRL: + .word 0x00000000 + + .global _OUTPUT6_CTRL +_OUTPUT6_CTRL: + .word 0x00000000 + + .global _OUTPUT7_CTRL +_OUTPUT7_CTRL: + .word 0x00000000 + + .global _OUTPUT8_CTRL +_OUTPUT8_CTRL: + .word 0x00000000 + + .global _OUTPUT9_CTRL +_OUTPUT9_CTRL: + .word 0x00000000 + + .global _OUTPUT10_CTRL +_OUTPUT10_CTRL: + .word 0x00000000 + + ;; 128 bytes minus eleven registers (four bytes per register) + ;.fill (128 - 11 * 4) + + .global _INPUT0_CTRL +_INPUT0_CTRL: + .word 0x00000000 + + ;; 128 bytes minus one register (four bytes per register) + ;.fill (128 - 1 * 4) + ; 256 bytes minus twelve registers (four bytes per register) + .fill (256 - 12 * 4) + + + + ;.org 0xfff800 + ; IQ Buffer Registers + .global _IQ_BUFF_CTRL_REG +_IQ_BUFF_CTRL_REG: + .word 0x00000000 + + .global _IQ_BUFF_PARAMETER1_REG +_IQ_BUFF_PARAMETER1_REG: + .word 0x00000000 + + .global _IQ_BUFF_DATA_SIZE1_REG +_IQ_BUFF_DATA_SIZE1_REG: + .word 0x00000000 + + .global _IQ_BUFF_TRANSFER_SIZE1_REG +_IQ_BUFF_TRANSFER_SIZE1_REG: + .word 0x00000000 + + .global _IQ_BUFF_FB_ADDR1_REG +_IQ_BUFF_FB_ADDR1_REG: + .word 0x00000000 + + .global _IQ_BUFF_PARAMETER2_REG +_IQ_BUFF_PARAMETER2_REG: + .word 0x00000000 + + .global _IQ_BUFF_DATA_SIZE2_REG +_IQ_BUFF_DATA_SIZE2_REG: + .word 0x00000000 + + .global _IQ_BUFF_TRANSFER_SIZE2_REG +_IQ_BUFF_TRANSFER_SIZE2_REG: + .word 0x00000000 + + .global _IQ_BUFF_FB_ADDR2_REG +_IQ_BUFF_FB_ADDR2_REG: + .word 0x00000000 + + ; 256 bytes minus nine registers (four bytes per register) + .fill (256 - 9 * 4) + + + ;.org 0xfff900 + ; Reserved memory-mapped space. + .fill (0x1000 - 0x900) diff --git a/libgloss/mt/startup-16-003.S b/libgloss/mt/startup-16-003.S new file mode 100644 index 000000000..9f65f5d4d --- /dev/null +++ b/libgloss/mt/startup-16-003.S @@ -0,0 +1,838 @@ +/* + * $Header$ + * + * interrupt_vectors.s -- the interrupt handler jump table. + * + * + * There are a total of 32 interrupt vector possible, however, only + * 11 of those are currently used (the others are reserved). The + * order of vectors is as follows: + * + * 1. Boot Vector. Vector for power-on/reset. + * 2. Software Vector. Vector for handling the SI instruction (an + * explicit interrupt caused by software). + * 3. Break Vector. Vector for handling the Break instruction. + * 4. Device 0 Vector. Service vector for device zero. + * 5. Device 1 Vector. Service vector for device one. + * 6. Device 2 Vector. Service vector for device two. + * 7. Device 3 Vector. Service vector for device three. + * 8. Device 4 Vector. Service vector for device four. + * 9. Device 5 Vector. Service vector for device five. + * 10. Device 6 Vector. Service vector for device six. + * 11. Device 7 Vector. Service vector for device seven. + * + * The rest of the interrupt vectors are reserved for future use. + * + * + * Each jump table entry consists of the following two instructions: + * + * jmp Label ; Label as appropriate + * nop ; implemented as or r0,r0,r0 + * + * The following labels are reserved for the vectors named above, + * respectively: + * + * _BOOTIVEC, _SOFTIVEC, _BRKIVEC, _DEV0IVEC, _DEV1IVEC, _DEV2IVEC, + * _DEV3IVEC, _DEV4IVEC, _DEV5IVEC, _DEV6IVEC, _DEV7IVEC + * + * 09Jan04 (DJK) Modified internal I/O port definitions for the + * MS1-16-003. + * + * 10Oct01 (DJK) The memory map is finalized and the first 4K of address + * space is now reserved for memory-mapped I/O devices. + * (There is over 2K unused, reserved space in this area.) + * + * 26Sep01 (DJK) The memory map is changed and the device interrupts are + * now memory-mapped. + * + * + * + * Copyright (c) 2001, 2002, 2003, 2004 Morpho Technologies + * + */ + + .section .startup, "a", @progbits + .global __boot_start +__boot_start: +_INTERRUPT_VECTOR_TABLE: + jmp _BOOTIVEC ; Boot vector + or r0, r0, r0 + jmp _SOFTIVEC ; Vector for SI instruction + or r0,r0,r0 + jmp _BRKIVEC ; Vector for Break instruction + or r0,r0,r0 + ; The illegal instruction trap is not implemented. + ;jmp _ILLIVEC ; Vector for illegal instruction + or r0,r0,r0 + or r0,r0,r0 +_RESERVED1_IVEC: + jmp _RESERVED1_IVEC + or r0,r0,r0 +_RESERVED2_IVEC: + jmp _RESERVED2_IVEC + or r0,r0,r0 +_RESERVED3_IVEC: + jmp _RESERVED3_IVEC + or r0,r0,r0 +_RESERVED4_IVEC: + jmp _RESERVED4_IVEC + or r0,r0,r0 + + + .text + + .equ SI_IOPORT_ADR, _DEBUG_SW_SYSREQ_REG + .equ SI_IOPORT_BIT, 0x1 + .equ BRK_IOPORT_ADR, _DEBUG_BREAK_REG + .equ BRK_IOPORT_BIT, 0x1 + + .global _BOOTIVEC +_BOOTIVEC: + ; Initialize the interrupt controller's interrupt vector registers + ldui r1, #%hi16(_IVEC_DEFAULT) + ori r1, r1, #%lo16(_IVEC_DEFAULT) + stw r1, r0, #%lo16(_DEV0_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV1_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV2_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV3_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV4_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV5_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV6_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV7_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV8_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV9_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV10_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV11_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV12_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV13_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV14_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV15_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV16_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV17_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV18_INTERRUPT_REG) + + ; Statically initialized data must be copied from ROM to RAM. + ; This is done in the C run-time start-up code (crt0.o). + + ; Jump to the beginning of the application and enable interrupts. + jmp _start + ei + + + ; Handler for the SI instruction. To perform a system call, the + ; C model uses a trapping mechanism which executes an SI instruction. + ; The Morpho Technologies simulator simply performs a branch to + ; this vector to simulate the SI instruction (this is as the hardware + ; behaves). In order to trigger the simulator that a system call + ; is needed a write into the I/O register at address $40005 to + ; set bit #2 (0x4) is necessary. + ; + ; The above address has been changed to 0x00031C and the bit number + ; is zero. (The manifest constants have been changed to reflect this.) + .global _SOFTIVEC +_SOFTIVEC: + ; Build a frame to save registers. + subi sp, sp, #$8 + stw r9, sp, #$4 + ldui r9, #%hi16(SI_IOPORT_ADR) + stw r10, sp, #$0 + ori r9, r9, #%lo16(SI_IOPORT_ADR) + ori r10, r0, #SI_IOPORT_BIT + stw r10, r9, #$0 + ; SYS_call is handled by simulator here... + or r0, r0, r0 + ldw r10, sp, #$0 + or r0, r0, r0 + ldw r9, sp, #$4 + reti r14 + addi sp, sp, #$8 + + + + .global _BRKIVEC +_BRKIVEC: + ; Build a frame to save registers. + subi sp, sp, #$8 + stw r9, sp, #$4 + ldui r9, #%hi16(BRK_IOPORT_ADR) + stw r10, sp, #$0 + ori r9, r9, #%lo16(BRK_IOPORT_ADR) + ori r10, r0, #BRK_IOPORT_BIT + stw r10, r9, #$0 + or r0, r0, r0 + or r0, r0, r0 + or r0, r0, r0 + or r0, r0, r0 + or r0, r0, r0 + ldw r10, sp, #$0 + ldw r9, sp, #$4 + reti r15 + addi sp, sp, #$8 + + +.if 0 + ; Handler for illegal instruction. + .global _ILLIVEC +_ILLIVEC: + reti r15 + or r0, r0, r0 +.endif + + + .global _IVEC_DEFAULT +_IVEC_DEFAULT: + reti r15 + or r0, r0, r0 + + + .section .internal_io, "a", @progbits + .fill 256 ; Fill the first page. + + ; This is the memory-mapped I/O region. + + ; Hardware Interrupt Registers + ;.org 0xfffff100 + .global _DEV0_INTERRUPT_REG +_DEV0_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV1_INTERRUPT_REG +_DEV1_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV2_INTERRUPT_REG +_DEV2_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV3_INTERRUPT_REG +_DEV3_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV4_INTERRUPT_REG +_DEV4_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV5_INTERRUPT_REG +_DEV5_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV6_INTERRUPT_REG +_DEV6_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV7_INTERRUPT_REG +_DEV7_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV8_INTERRUPT_REG +_DEV8_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV9_INTERRUPT_REG +_DEV9_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV10_INTERRUPT_REG +_DEV10_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV11_INTERRUPT_REG +_DEV11_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV12_INTERRUPT_REG +_DEV12_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV13_INTERRUPT_REG +_DEV13_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV14_INTERRUPT_REG +_DEV14_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV15_INTERRUPT_REG +_DEV15_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV16_INTERRUPT_REG +_DEV16_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV17_INTERRUPT_REG +_DEV17_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV18_INTERRUPT_REG +_DEV18_INTERRUPT_REG: + .word 0x00000000 + + ; 128 bytes minus nineteen registers (four bytes per register) + .fill (128 - 19 * 4) + + .global _INTERRUPT_MASK_REG +_INTERRUPT_MASK_REG: + .word 0x00000000 + + .global _INTERRUPT_PENDING_REG +_INTERRUPT_PENDING_REG: + .word 0x00000000 + + ; 16 bytes minus two registers (four bytes per register) + .fill (16 - 2 * 4) + + .global _DEV0_INTERRUPT_LEVEL_REG +_DEV0_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV1_INTERRUPT_LEVEL_REG +_DEV1_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV2_INTERRUPT_LEVEL_REG +_DEV2_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV3_INTERRUPT_LEVEL_REG +_DEV3_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV4_INTERRUPT_LEVEL_REG +_DEV4_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV5_INTERRUPT_LEVEL_REG +_DEV5_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV6_INTERRUPT_LEVEL_REG +_DEV6_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV7_INTERRUPT_LEVEL_REG +_DEV7_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV8_INTERRUPT_LEVEL_REG +_DEV8_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV9_INTERRUPT_LEVEL_REG +_DEV9_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV10_INTERRUPT_LEVEL_REG +_DEV10_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV11_INTERRUPT_LEVEL_REG +_DEV11_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV12_INTERRUPT_LEVEL_REG +_DEV12_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV13_INTERRUPT_LEVEL_REG +_DEV13_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV14_INTERRUPT_LEVEL_REG +_DEV14_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV15_INTERRUPT_LEVEL_REG +_DEV15_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV16_INTERRUPT_LEVEL_REG +_DEV16_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV17_INTERRUPT_LEVEL_REG +_DEV17_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + .global _DEV18_INTERRUPT_LEVEL_REG +_DEV18_INTERRUPT_LEVEL_REG: + .word 0x00000000 + + ; 128 bytes minus twenty-three registers (four bytes per register) + .fill (128 - 23 * 4) + + + ;.org 0xfffff200 + ; MorphoSys Decoder Registers + .global _MS_DEC_CIRC_BUFF_SEL_REG +_MS_DEC_CIRC_BUFF_SEL_REG: + .word 0x00000000 + + .global _MS_DEC_SKIP_FACTOR_REG +_MS_DEC_SKIP_FACTOR_REG: + .word 0x00000000 + + .global _MS_DEC_CUSTOM_PERM_REG +_MS_DEC_CUSTOM_PERM_REG: + .word 0x00000000 + + .global _MS_DEC_CTXT_BASE_REG +_MS_DEC_CTXT_BASE_REG: + .word 0x00000000 + + .global _MS_DEC_LOOKUP_TBL_REG +_MS_DEC_LOOKUP_TBL_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF0_I_REG +_MS_CIRC_BUFF0_I_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF0_P_REG +_MS_CIRC_BUFF0_P_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BUFF0_B_REG +_MS_DATA_BUFF0_B_REG: + .word 0x00000000 + + .global _MS_DATA_BUFF0_S_REG +_MS_DATA_BUFF0_S_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF1_I_REG +_MS_CIRC_BUFF1_I_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF1_P_REG +_MS_CIRC_BUFF1_P_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BUFF1_B_REG +_MS_DATA_BUFF1_B_REG: + .word 0x00000000 + + .global _MS_DATA_BUFF1_S_REG +_MS_DATA_BUFF1_S_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF2_I_REG +_MS_CIRC_BUFF2_I_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF2_P_REG +_MS_CIRC_BUFF2_P_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BUFF2_B_REG +_MS_DATA_BUFF2_B_REG: + .word 0x00000000 + + .global _MS_DATA_BUFF2_S_REG +_MS_DATA_BUFF2_S_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF3_I_REG +_MS_CIRC_BUFF3_I_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF3_P_REG +_MS_CIRC_BUFF3_P_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BUFF3_B_REG +_MS_DATA_BUFF3_B_REG: + .word 0x00000000 + + .global _MS_DATA_BUFF3_S_REG +_MS_DATA_BUFF3_S_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF4_I_REG +_MS_CIRC_BUFF4_I_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF4_P_REG +_MS_CIRC_BUFF4_P_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BUFF4_B_REG +_MS_DATA_BUFF4_B_REG: + .word 0x00000000 + + .global _MS_DATA_BUFF4_S_REG +_MS_DATA_BUFF4_S_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF5_I_REG +_MS_CIRC_BUFF5_I_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF5_P_REG +_MS_CIRC_BUFF5_P_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BUFF5_B_REG +_MS_DATA_BUFF5_B_REG: + .word 0x00000000 + + .global _MS_DATA_BUFF5_S_REG +_MS_DATA_BUFF5_S_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF6_I_REG +_MS_CIRC_BUFF6_I_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF6_P_REG +_MS_CIRC_BUFF6_P_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BUFF6_B_REG +_MS_DATA_BUFF6_B_REG: + .word 0x00000000 + + .global _MS_DATA_BUFF6_S_REG +_MS_DATA_BUFF6_S_REG: + .word 0x00000000 + + .global _MS_CIRC_BUFF7_I_REG +_MS_CIRC_BUFF7_I_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRC_BUFF7_P_REG +_MS_CIRC_BUFF7_P_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BUFF7_B_REG +_MS_DATA_BUFF7_B_REG: + .word 0x00000000 + + .global _MS_DATA_BUFF7_S_REG +_MS_DATA_BUFF7_S_REG: + .word 0x00000000 + + .global _MS_OMEGA_PERM1_REG +_MS_OMEGA_PERM1_REG: + .word 0x00000000 + + .global _MS_WRITE_FB_ADDR_REG +_MS_WRITE_FB_ADDR_REG: + .word 0x00000000 + + .global _MS_OMEGA_PERM2_REG +_MS_OMEGA_PERM2_REG: + .word 0x00000000 + + + ; 256 bytes minus forty registers (four bytes per register) + .fill (256 - 40 * 4) + + + + ;.org 0xfffff300 + ; Debug Registers + .global _DEBUG_HALT_REG +_DEBUG_HALT_REG: + .word 0x00000000 + + .global _DEBUG_BREAK_REG +_DEBUG_BREAK_REG: + .word 0x00000000 + + .global _DEBUG_CRITICAL_REG +_DEBUG_OWNERSHIP_REG: + .word 0x00000000 + + .global _DEBUG_KERNEL_ID_REG +_DEBUG_KERNEL_ID_REG: + .word 0x00000000 + + .global _DEBUG_IRQ_STATUS_REG +_DEBUG_IRQ_STATUS_REG: + .word 0x00000000 + + ; There are two reserved registers. + .fill (2 * 4) + + .global _DEBUG_SW_SYSREQ_REG +_DEBUG_SW_SYSREQ_REG: + .word 0x00000000 + + ; 128 bytes minus eight registers (four bytes per register) + .fill (128 - 8 * 4) + + .global _EXTENDED_GP0_REG +_EXTENDED_GP0_REG: + .word 0x00000000 + + .global _EXTENDED_GP1_REG +_EXTENDED_GP1_REG: + .word 0x00000000 + + .global _EXTENDED_GP2_REG +_EXTENDED_GP2_REG: + .word 0x00000000 + + .global _EXTENDED_GP3_REG +_EXTENDED_GP3_REG: + .word 0x00000000 + + .global _EXTENDED_GP4_REG +_EXTENDED_GP4_REG: + .word 0x00000000 + + .global _EXTENDED_GP5_REG +_EXTENDED_GP5_REG: + .word 0x00000000 + + .global _EXTENDED_GP6_REG +_EXTENDED_GP6_REG: + .word 0x00000000 + + .global _EXTENDED_GP7_REG +_EXTENDED_GP7_REG: + .word 0x00000000 + + .global _MEM_CTRL_EN_NC_MEM_REG +_MEM_CTRL_EN_NC_MEM_REG: + .word 0x00000000 + + .global _MEM_CTRL_BASE0_ADDR_REG +_MEM_CTRL_BASE0_ADDR_REG: + .word 0x00000000 + + .global _MEM_CTRL_MASK0_ADDR_REG +_MEM_CTRL_MASK0_ADDR_REG: + .word 0x00000000 + + .global _MEM_CTRL_BASE1_ADDR_REG +_MEM_CTRL_BASE1_ADDR_REG: + .word 0x00000000 + + .global _MEM_CTRL_MASK1_ADDR_REG +_MEM_CTRL_MASK1_ADDR_REG: + .word 0x00000000 + + .global _MEM_CTRL_BASE2_ADDR_REG +_MEM_CTRL_BASE2_ADDR_REG: + .word 0x00000000 + + .global _MEM_CTRL_MASK2_ADDR_REG +_MEM_CTRL_MASK2_ADDR_REG: + .word 0x00000000 + + .global _MEM_CTRL_BASE3_ADDR_REG +_MEM_CTRL_BASE3_ADDR_REG: + .word 0x00000000 + + .global _MEM_CTRL_MASK3_ADDR_REG +_MEM_CTRL_MASK3_ADDR_REG: + .word 0x00000000 + + ; 128 bytes minus seventeen registers (four bytes per register) + .fill (128 - 17 * 4) + + + + ; Reserved memory-map space + .fill (256 + 256) + + + + ;.org 0xfffff600 + ; Timer Registers + .global _TIMER0_VAL_REG +_TIMER0_VAL_REG: + .word 0x00000000 + + .global _TIMER1_VAL_REG +_TIMER1_VAL_REG: + .word 0x00000000 + + .global _TIMER2_VAL_REG +_TIMER2_VAL_REG: + .word 0x00000000 + + .global _TIMER3_VAL_REG +_TIMER3_VAL_REG: + .word 0x00000000 + + ; 256 bytes minus four registers (four bytes per register) + .fill (256 - 4 * 4) + + + + ;.org 0xfffff700 + ; Output Line Control Registers + .global _OUTPUT0_CTRL +_OUTPUT0_CTRL: + .word 0x00000000 + + .global _OUTPUT1_CTRL +_OUTPUT1_CTRL: + .word 0x00000000 + + .global _OUTPUT2_CTRL +_OUTPUT2_CTRL: + .word 0x00000000 + + .global _OUTPUT3_CTRL +_OUTPUT3_CTRL: + .word 0x00000000 + + .global _OUTPUT4_CTRL +_OUTPUT4_CTRL: + .word 0x00000000 + + .global _OUTPUT5_CTRL +_OUTPUT5_CTRL: + .word 0x00000000 + + .global _OUTPUT6_CTRL +_OUTPUT6_CTRL: + .word 0x00000000 + + ; 128 bytes minus seven registers (four bytes per register) + .fill (128 - 7 * 4) + + .global _INPUT0_CTRL +_INPUT0_CTRL: + .word 0x00000000 + + ; 128 bytes minus one register (four bytes per register) + .fill (128 - 1 * 4) + + + + ;.org 0xfffff800 + ; IQ Buffer Registers + .global _IQ_BUFF_CTRL_REG +_IQ_BUFF_CTRL_REG: + .word 0x00000000 + + .global _IQ_BUFF_STATUS_REG +_IQ_BUFF_STATUS_REG: + .word 0x00000000 + + .global _IQ_BUFF_PARAMETER1_REG +_IQ_BUFF_PARAMETER1_REG: + .word 0x00000000 + + .global _IQ_BUFF_TRANSFER_SIZE1_REG +_IQ_BUFF_TRANSFER_SIZE1_REG: + .word 0x00000000 + + .global _IQ_BUFF_FB_BASE1_REG +_IQ_BUFF_FB_BASE1_REG: + .word 0x00000000 + + .global _IQ_BUFF_FB_SIZE1_REG +_IQ_BUFF_FB_SIZE1_REG: + .word 0x00000000 + + .global _IQ_BUFF_PARAMETER2_REG +_IQ_BUFF_PARAMETER2_REG: + .word 0x00000000 + + .global _IQ_BUFF_TRANSFER_SIZE2_REG +_IQ_BUFF_TRANSFER_SIZE2_REG: + .word 0x00000000 + + .global _IQ_BUFF_FB_BASE2_REG +_IQ_BUFF_FB_BASE2_REG: + .word 0x00000000 + + .global _IQ_BUFF_FB_SIZE2_REG +_IQ_BUFF_FB_SIZE2_REG: + .word 0x00000000 + + ; 256 bytes minus ten registers (four bytes per register) + .fill (256 - 10 * 4) + + + + ;.org 0xfffff900 + ; DMA Controller + .global _DMA_CTRL_REG +_DMA_CTRL_REG: + .word 0x00000000 + + .global _DMA_STATUS_REG +_DMA_STATUS_REG: + .word 0x00000000 + + .global _DMA_CH0_EADDR_REG +_DMA_CH0_EADDR_REG: + .word 0x00000000 + + .global _DMA_CH0_IADDR_REG +_DMA_CH0_IADDR_REG: + .word 0x00000000 + + .global _DMA_CH0_SIZE_REG +_DMA_CH0_SIZE_REG: + .word 0x00000000 + + .global _DMA_CH1_EADDR_REG +_DMA_CH1_EADDR_REG: + .word 0x00000000 + + .global _DMA_CH1_IADDR_REG +_DMA_CH1_IADDR_REG: + .word 0x00000000 + + .global _DMA_CH1_SIZE_REG +_DMA_CH1_SIZE_REG: + .word 0x00000000 + + .global _DMA_CH2_EADDR_REG +_DMA_CH2_EADDR_REG: + .word 0x00000000 + + .global _DMA_CH2_IADDR_REG +_DMA_CH2_IADDR_REG: + .word 0x00000000 + + .global _DMA_CH2_SIZE_REG +_DMA_CH2_SIZE_REG: + .word 0x00000000 + + .global _DMA_CH3_EADDR_REG +_DMA_CH3_EADDR_REG: + .word 0x00000000 + + .global _DMA_CH3_IADDR_REG +_DMA_CH3_IADDR_REG: + .word 0x00000000 + + .global _DMA_CH3_SIZE_REG +_DMA_CH3_SIZE_REG: + .word 0x00000000 + + ; 256 bytes minus fourteen registers (four bytes per register) + .fill (256 - 14 * 4) + + + + ;.org 0xfffffa00 + ; Sequence Generator + .global _SEQ_GEN_CTRL_STATUS_REG +_SEQ_GEN_CTRL_STATUS_REG: + .word 0x00000000 + + .global _SEQ_GEN_MASK_REGS +_SEQ_GEN_MASK_REGS: + .fill (302 * 4) + + .global _SEQ_GEN_SHIFT_REG +_SEQ_GEN_SHIFT_REG: + .word 0x00000000 + + ; 256 bytes minus seven registers (four bytes per register) + .fill (256 - 48 * 4) + + + + ; Reserved memory-map space + .fill (0x1000 - 0xf00) diff --git a/libgloss/mt/startup-64-001.S b/libgloss/mt/startup-64-001.S new file mode 100644 index 000000000..5ceb42b36 --- /dev/null +++ b/libgloss/mt/startup-64-001.S @@ -0,0 +1,378 @@ +/* + * $Header$ + * + * interrupt_vectors.s -- the interrupt handler jump table. + * + * + * There are a total of 32 interrupt vector possible, however, only + * 11 of those are currently used (the others are reserved). The + * order of vectors is as follows: + * + * 1. Boot Vector. Vector for power-on/reset. + * 2. Software Vector. Vector for handling the SI instruction (an + * explicit interrupt caused by software). + * 3. Break Vector. Vector for handling the Break instruction. + * 4. Device 0 Vector. Service vector for device zero. + * 5. Device 1 Vector. Service vector for device one. + * 6. Device 2 Vector. Service vector for device two. + * 7. Device 3 Vector. Service vector for device three. + * 8. Device 4 Vector. Service vector for device four. + * 9. Device 5 Vector. Service vector for device five. + * 10. Device 6 Vector. Service vector for device six. + * 11. Device 7 Vector. Service vector for device seven. + * + * The rest of the interrupt vectors are reserved for future use. + * + * + * Each jump table entry consists of the following two instructions: + * + * jmp Label ; Label as appropriate + * nop ; implemented as or r0,r0,r0 + * + * The following labels are reserved for the vectors named above, + * respectively: + * + * _BOOTIVEC, _SOFTIVEC, _BRKIVEC, _DEV0IVEC, _DEV1IVEC, _DEV2IVEC, + * _DEV3IVEC, _DEV4IVEC, _DEV5IVEC, _DEV6IVEC, _DEV7IVEC + * + * + * 26Sep01 (DJK) The memory map is changed and the device interrupts are + * now memory-mapped. + * + * 10Oct01 (DJK) The memory map is finalized and the first 4K of address + * space is now reserved for memory-mapped I/O devices. + * (There is over 2K unused, reserved space in this area.) + * + * 27Jul02 (DJK) Fixed the address for the interrupt mask register. Old + * documentation stated the port address as 0x140, but + * the implementation uses 0x13c. + * + * 30Jul02 (DJK) Added support for printf. This only supports output to + * stderr and stdout. Using the message box interface, + * a (newly defined) message or series of messages is + * passed to the controller to output bytes as text to + * the debug console. These messages are constructed in + * the interrupt handler for the SI instruction. + * With this implementation, the user is unable to + * utilize the message box interface in applications as + * specialized interrupt handlers for the external + * interrupts are necessary. + * + * + * + * Copyright (c) 2001, 2002, 2003, 2004 Morpho Technologies, Inc. + * + */ + + .section .startup, "a", @progbits + .global __boot_start +_INTERRUPT_VECTOR_TABLE: +__boot_start: + jmp _BOOTIVEC ; Boot vector + or r0, r0, r0 + jmp _SOFTIVEC ; Vector for SI instruction + or r0,r0,r0 + jmp _BRKIVEC ; Vector for Break instruction + or r0,r0,r0 + + + ; This is the memory-mapped I/O region. + + ; Hardware Interrupt Registers + .org 0x100 + .global _DEV0_INTERRUPT_REG +_DEV0_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV1_INTERRUPT_REG +_DEV1_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV2_INTERRUPT_REG +_DEV2_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV3_INTERRUPT_REG +_DEV3_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV4_INTERRUPT_REG +_DEV4_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV5_INTERRUPT_REG +_DEV5_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV6_INTERRUPT_REG +_DEV6_INTERRUPT_REG: + .word 0x00000000 + + .global _DEV7_INTERRUPT_REG +_DEV7_INTERRUPT_REG: + .word 0x00000000 + + ; 60 bytes minus eight registers (four bytes per register) + .fill (60 - 8 * 4) + + .global _INTERRUPT_MASK_REG +_INTERRUPT_MASK_REG: + .word 0x00000000 + + ; 256 bytes minus sixteen registers (four bytes per register) + .fill (256 - 16 * 4) + + + + .org 0x200 + ; MorphoSys Decoder Registers + .global _MS_DEC_AUTO_INCREMENT_REG +_MS_DEC_AUTO_INCREMENT_REG: + .word 0x00000000 + + .global _MS_DEC_SKIP_FACTOR_REG +_MS_DEC_SKIP_FACTOR_REG: + .word 0x00000000 + + .global _MS_DEC_CUSTOM_PERMUTATION_REG +_MS_DEC_CUSTOM_PERMUTATION_REG: + .word 0x00000000 + + .global _MS_DEC_CONTEXT_BASE_REG +_MS_DEC_CONTEXT_BASE_REG: + .word 0x00000000 + + .global _MS_DEC_LOOKUP_TABLE_BASE_REG +_MS_DEC_LOOKUP_TABLE_BASE_REG: + .word 0x00000000 + + .global _MS_CIRCULAR_BUFFER_END_REG +_MS_CIRCULAR_BUFFER_END_REG: + .word (__FRAME_BUFFER_END) + + .global _MS_CIRCULAR_BUFFER_SIZE_REG +_MS_CIRCULAR_BUFFER_SIZE_REG: + .word __FRAME_BUFFER_SIZE + + .global _MS_DATA_BLOCK_END_REG +_MS_DATA_BLOCK_END_REG: + .word 0x00000000 + + .global _MS_DATA_BLOCK_SIZE_REG +_MS_DATA_BLOCK_SIZE_REG: + .word 0x00000000 + + ; 256 bytes minus nine registers (four bytes per register) + .fill (256 - 9 * 4) + + + + .org 0x300 + ; Debug Registers + .global _DEBUG_HALT_REG +_DEBUG_HALT_REG: + .word 0x00000000 + + .global _DEBUG_BREAK_REG +_DEBUG_BREAK_REG: + .word 0x00000000 + + .global _DEBUG_HW_RESERVED0_REG +_DEBUG_HW_RESERVED0_REG: + .word 0x00000000 + + .global _DEBUG_HW_RESERVED1_REG +_DEBUG_HW_RESERVED1_REG: + .word 0x00000000 + + .global _DEBUG_HW_RESERVED2_REG +_DEBUG_HW_RESERVED2_REG: + .word 0x00000000 + + .global _DEBUG_HW_RESERVED3_REG +_DEBUG_HW_RESERVED3_REG: + .word 0x00000000 + + .global _DEBUG_HW_RESERVED4_REG +_DEBUG_HW_RESERVED4_REG: + .word 0x00000000 + + .global _DEBUG_SW_SYSREQ_REG +_DEBUG_SW_SYSREQ_REG: + .word 0x00000000 + + ; 256 bytes minus eight registers (four bytes per register) + .fill (256 - 8 * 4) + + + + .org 0x400 + ; Sequence Generator Registers +_SEQ_GEN_REGS: + .fill 256 + + + + .org 0x500 +_RESERVED_SEQ_GEN_REGS: + .fill 256 + + + + .org 0x600 + .global _TIMER0_VAL_REG +_TIMER0_VAL_REG: + .word 0x00000000 + + .global _TIMER0_CTRL_REG +_TIMER0_CTRL_REG: + .word 0x00000000 + + .global _TIMER1_VAL_REG +_TIMER1_VAL_REG: + .word 0x00000000 + + .global _TIMER1_CTRL_REG +_TIMER1_CTRL_REG: + .word 0x00000000 + + .global _TIMER2_VAL_REG +_TIMER2_VAL_REG: + .word 0x00000000 + + .global _TIMER2_CTRL_REG +_TIMER2_CTRL_REG: + .word 0x00000000 + + ; 256 bytes minus six registers (four bytes per register) + .fill (256 - 6 * 4) + + + + .org 0x700 + .global _OUTPUT0_CONTROL +_OUTPUT0_CONTROL: + .word 0x00000000 + + .global _OUTPUT1_CONTROL +_OUTPUT1_CONTROL: + .word 0x00000000 + + .global _OUTPUT2_CONTROL +_OUTPUT2_CONTROL: + .word 0x00000000 + + .global _OUTPUT3_CONTROL +_OUTPUT3_CONTROL: + .word 0x00000000 + + .global _OUTPUT4_CONTROL +_OUTPUT4_CONTROL: + .word 0x00000000 + + .global _OUTPUT5_CONTROL +_OUTPUT5_CONTROL: + .word 0x00000000 + + .global _OUTPUT6_CONTROL +_OUTPUT6_CONTROL: + .word 0x00000000 + + .global _OUTPUT7_CONTROL +_OUTPUT7_CONTROL: + .word 0x00000000 + + ; 256 bytes minus eight registers (four bytes per register) + .fill (256 - 8 * 4) + + + + .org 0x800 + ; Reserved memory-mapped space. + .fill (0x1000 - 0x800) + + + + .text + + .equ SI_IOPORT_ADR, _DEBUG_SW_SYSREQ_REG + .equ SI_IOPORT_BIT, 0x1 + .equ BRK_IOPORT_ADR, _DEBUG_BREAK_REG + .equ BRK_IOPORT_BIT, 0x1 + + .global _BOOTIVEC +_BOOTIVEC: + + ; Initialize the interrupt controller's interrupt vector registers + ; for devices zero through seven. + ldui r1, #%hi16(_IVEC_DEFAULT) + ori r1, r1, #%lo16(_IVEC_DEFAULT) + stw r1, r0, #%lo16(_DEV0_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV1_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV2_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV3_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV4_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV5_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV6_INTERRUPT_REG) + stw r1, r0, #%lo16(_DEV7_INTERRUPT_REG) + + ; Jump to the beginning of the application and enable interrupts. + jmp _start + ei + + + + ; Handler for the SI instruction. To perform a system call, the + ; C model uses a trapping mechanism which executes an SI instruction. + ; The Morpho Technologies simulator simply performs a branch to + ; this vector to simulate the SI instruction (this is as the hardware + ; behaves). In order to trigger the simulator that a system call + ; is needed, a write into the I/O register at address $40005 to + ; set bit #2 (0x4) is necessary. + ; + ; The above address has been changed to 0x31C and the bit number + ; is zero. (The manifest constants have been changed to reflect this.) + ; + .global _SOFTIVEC +_SOFTIVEC: + ; Build a frame to save registers. + subi sp, sp, #$8 + stw r9, sp, #$4 + ldui r9, #%hi16(SI_IOPORT_ADR) + stw r10, sp, #$0 + ori r9, r9, #%lo16(SI_IOPORT_ADR) + ori r10, r0, #SI_IOPORT_BIT + stw r10, r9, #$0 + ; SYS_call is handled by simulator here... + or r0, r0, r0 + ldw r10, sp, #$0 + or r0, r0, r0 + ldw r9, sp, #$4 + reti r14 + addi sp, sp, #$8 + + + + .global _BRKIVEC +_BRKIVEC: + ; Build a frame to save registers. + subi sp, sp, #$8 + stw r9, sp, #$4 + ldui r9, #%hi16(BRK_IOPORT_ADR) + stw r10, sp, #$0 + ori r9, r9, #%lo16(BRK_IOPORT_ADR) + ori r10, r0, #BRK_IOPORT_BIT + stw r10, r9, #$0 + or r0, r0, r0 + ldw r10, sp, #$0 + subi r15, r15, #$4 ; Backup to address of break + ldw r9, sp, #$4 + reti r15 + addi sp, sp, #$8 + + + + .global _IVEC_DEFAULT +_IVEC_DEFAULT: + reti r15 + or r0, r0, r0 diff --git a/libgloss/mt/stat.c b/libgloss/mt/stat.c new file mode 100644 index 000000000..9a6ca7ca0 --- /dev/null +++ b/libgloss/mt/stat.c @@ -0,0 +1,12 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" + + +int +stat (const char *path, struct stat *st) + +{ + return TRAP0 (SYS_stat, path, st, 0); +} diff --git a/libgloss/mt/time.c b/libgloss/mt/time.c new file mode 100644 index 000000000..2df8d48d2 --- /dev/null +++ b/libgloss/mt/time.c @@ -0,0 +1,11 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" + + +time_t +time (time_t *tloc) +{ + return TRAP0 (SYS_time, tloc, 0, 0); +} diff --git a/libgloss/mt/times.c b/libgloss/mt/times.c new file mode 100644 index 000000000..b804be4cd --- /dev/null +++ b/libgloss/mt/times.c @@ -0,0 +1,12 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" +#include "sys/times.h" + + +clock_t +times (struct tms *buffer) +{ + return TRAP0 (SYS_times, buffer, 0, 0); +} diff --git a/libgloss/mt/trap.S b/libgloss/mt/trap.S new file mode 100644 index 000000000..9fca7204e --- /dev/null +++ b/libgloss/mt/trap.S @@ -0,0 +1,34 @@ +;; +;; The errno will be in r5 if r11 is -1. +;; + .text + .global __trap0 +__trap0: + ;; non-leaf function so need to create stack frame to + ;; store ra and fp + subi sp, sp, #16 + stw ra, sp, #12 + or r0, r0, r0 ;; nop + stw fp, sp, #8 + or fp, sp, sp + stw r5, sp, #4 + or r0, r0, r0 ;; nop + stw r6, sp, #0 + addi r6, r0, #$-1 + si r14 + or r0, r0, r0 ;; nop + brne r11, r6, .L0 + ldui r6, #%hi16(errno) + addui r6, r6, #%lo16(errno) + stw r5, r6, #0 + or r0, r0, r0 ;; nop +.L0: + ldw r6, sp, #0 + or r0, r0, r0 ;; nop + ldw r5, sp, #4 + or r0, r0, r0 ;; nop + ldw ra, sp, #12 + or r0, r0, r0 ;; nop + ldw fp, sp, #8 + jal r0, r14 + addi sp, sp, #16 diff --git a/libgloss/mt/trap.h b/libgloss/mt/trap.h new file mode 100644 index 000000000..27636c004 --- /dev/null +++ b/libgloss/mt/trap.h @@ -0,0 +1,5 @@ +#include "syscall.h" + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) diff --git a/libgloss/mt/unlink.c b/libgloss/mt/unlink.c new file mode 100644 index 000000000..a620e89dd --- /dev/null +++ b/libgloss/mt/unlink.c @@ -0,0 +1,11 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" + + +int +unlink () +{ + return -1; +} diff --git a/libgloss/mt/utime.c b/libgloss/mt/utime.c new file mode 100644 index 000000000..3fce7e364 --- /dev/null +++ b/libgloss/mt/utime.c @@ -0,0 +1,13 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" + + +int +utime (path, times) + const char *path; + char *times; +{ + return TRAP0 (SYS_utime, path, times, 0); +} diff --git a/libgloss/mt/write.c b/libgloss/mt/write.c new file mode 100644 index 000000000..88b5ff83d --- /dev/null +++ b/libgloss/mt/write.c @@ -0,0 +1,13 @@ +#include <_ansi.h> +#include +#include +#include "trap.h" + + +int +write ( int file, + char *ptr, + size_t len) +{ + return TRAP0 (SYS_write, file, ptr, len); +} diff --git a/newlib/libc/machine/ms1/Makefile.am b/newlib/libc/machine/ms1/Makefile.am deleted file mode 100644 index 1c65b9ffe..000000000 --- a/newlib/libc/machine/ms1/Makefile.am +++ /dev/null @@ -1,12 +0,0 @@ -## Process this file with automake to generate Makefile.in - -AUTOMAKE_OPTIONS = cygnus - -INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) - -noinst_LIBRARIES = lib.a - -lib_a_SOURCES = setjmp.S - -ACLOCAL_AMFLAGS = -I ../../.. -CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/ms1/Makefile.in b/newlib/libc/machine/ms1/Makefile.in deleted file mode 100644 index 9736912dc..000000000 --- a/newlib/libc/machine/ms1/Makefile.in +++ /dev/null @@ -1,327 +0,0 @@ -# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am - -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include - -DESTDIR = - -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ - -top_builddir = . - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -transform = @program_transform_name@ - -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_alias = @build_alias@ -build_triplet = @build@ -host_alias = @host_alias@ -host_triplet = @host@ -target_alias = @target_alias@ -target_triplet = @target@ -AR = @AR@ -AS = @AS@ -CC = @CC@ -CPP = @CPP@ -EXEEXT = @EXEEXT@ -LDFLAGS = @LDFLAGS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -RANLIB = @RANLIB@ -VERSION = @VERSION@ -aext = @aext@ -libm_machine_dir = @libm_machine_dir@ -machine_dir = @machine_dir@ -newlib_basedir = @newlib_basedir@ -oext = @oext@ -sys_dir = @sys_dir@ - -AUTOMAKE_OPTIONS = cygnus - -INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) - -noinst_LIBRARIES = lib.a - -lib_a_SOURCES = setjmp.S - -ACLOCAL_AMFLAGS = -I ../../.. -CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs -CONFIG_CLEAN_FILES = -LIBRARIES = $(noinst_LIBRARIES) - - -DEFS = @DEFS@ -I. -I$(srcdir) -CPPFLAGS = @CPPFLAGS@ -LIBS = @LIBS@ -lib_a_LIBADD = -lib_a_OBJECTS = setjmp.o -CFLAGS = @CFLAGS@ -COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ -DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in - - -DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) - -TAR = gtar -GZIP_ENV = --best -SOURCES = $(lib_a_SOURCES) -OBJECTS = $(lib_a_OBJECTS) - -all: all-redirect -.SUFFIXES: -.SUFFIXES: .S .c .o .s -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile - -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) \ - && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status - -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in \ - ../../../acinclude.m4 ../../../aclocal.m4 \ - ../../../libtool.m4 - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) - -config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck -$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) - cd $(srcdir) && $(AUTOCONF) - -mostlyclean-noinstLIBRARIES: - -clean-noinstLIBRARIES: - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) - -distclean-noinstLIBRARIES: - -maintainer-clean-noinstLIBRARIES: - -.c.o: - $(COMPILE) -c $< - -.s.o: - $(COMPILE) -c $< - -.S.o: - $(COMPILE) -c $< - -mostlyclean-compile: - -rm -f *.o core *.core - -clean-compile: - -distclean-compile: - -rm -f *.tab.c - -maintainer-clean-compile: - -lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) - -rm -f lib.a - $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) - $(RANLIB) lib.a - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - here=`pwd` && cd $(srcdir) \ - && mkid -f$$here/ID $$unique $(LISP) - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS)'; \ - unique=`for i in $$list; do echo $$i; done | \ - awk ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) - -mostlyclean-tags: - -clean-tags: - -distclean-tags: - -rm -f TAGS ID - -maintainer-clean-tags: - -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - -rm -rf $(distdir) - GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz - mkdir $(distdir)/=build - mkdir $(distdir)/=inst - dc_install_base=`cd $(distdir)/=inst && pwd`; \ - cd $(distdir)/=build \ - && ../configure --srcdir=.. --prefix=$$dc_install_base \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) dist - -rm -rf $(distdir) - @banner="$(distdir).tar.gz is ready for distribution"; \ - dashes=`echo "$$banner" | sed s/./=/g`; \ - echo "$$dashes"; \ - echo "$$banner"; \ - echo "$$dashes" -dist: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - -rm -rf $(distdir) -dist-all: distdir - -chmod -R a+r $(distdir) - GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) - -rm -rf $(distdir) -distdir: $(DISTFILES) - -rm -rf $(distdir) - mkdir $(distdir) - -chmod 777 $(distdir) - @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ - else \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file || :; \ - fi; \ - done -info-am: -info: info-am -dvi-am: -dvi: dvi-am -check-am: -check: check-am -installcheck-am: -installcheck: installcheck-am -install-info-am: -install-info: install-info-am -install-exec-am: -install-exec: install-exec-am - -install-data-am: -install-data: install-data-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am -uninstall-am: -uninstall: uninstall-am -all-am: Makefile $(LIBRARIES) -all-redirect: all-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: - - -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -rm -f config.cache config.log stamp-h stamp-h[0-9]* - -maintainer-clean-generic: -mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ - mostlyclean-tags mostlyclean-generic - -mostlyclean: mostlyclean-am - -clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ - mostlyclean-am - -clean: clean-am - -distclean-am: distclean-noinstLIBRARIES distclean-compile \ - distclean-tags distclean-generic clean-am - -distclean: distclean-am - -rm -f config.status - -maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ - maintainer-clean-compile maintainer-clean-tags \ - maintainer-clean-generic distclean-am - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -maintainer-clean: maintainer-clean-am - -rm -f config.status - -.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ -clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ -mostlyclean-compile distclean-compile clean-compile \ -maintainer-clean-compile tags mostlyclean-tags distclean-tags \ -clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ -check-am installcheck-am installcheck install-info-am install-info \ -install-exec-am install-exec install-data-am install-data install-am \ -install uninstall-am uninstall all-redirect all-am all installdirs \ -mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/newlib/libc/machine/ms1/aclocal.m4 b/newlib/libc/machine/ms1/aclocal.m4 deleted file mode 100644 index 0a1490998..000000000 --- a/newlib/libc/machine/ms1/aclocal.m4 +++ /dev/null @@ -1,366 +0,0 @@ -dnl aclocal.m4 generated automatically by aclocal 1.4-p6 - -dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without -dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A -dnl PARTICULAR PURPOSE. - -dnl This provides configure definitions used by all the newlib -dnl configure.in files. - -dnl Basic newlib configury. This calls basic introductory stuff, -dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs -dnl configure.host. The only argument is the relative path to the top -dnl newlib directory. - -AC_DEFUN(NEWLIB_CONFIGURE, -[ -dnl Default to --enable-multilib -AC_ARG_ENABLE(multilib, -[ --enable-multilib build many library versions (default)], -[case "${enableval}" in - yes) multilib=yes ;; - no) multilib=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; - esac], [multilib=yes])dnl - -dnl Support --enable-target-optspace -AC_ARG_ENABLE(target-optspace, -[ --enable-target-optspace optimize for space], -[case "${enableval}" in - yes) target_optspace=yes ;; - no) target_optspace=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; - esac], [target_optspace=])dnl - -dnl Support --enable-malloc-debugging - currently only supported for Cygwin -AC_ARG_ENABLE(malloc-debugging, -[ --enable-malloc-debugging indicate malloc debugging requested], -[case "${enableval}" in - yes) malloc_debugging=yes ;; - no) malloc_debugging=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for malloc-debugging option) ;; - esac], [malloc_debugging=])dnl - -dnl Support --enable-newlib-multithread -AC_ARG_ENABLE(newlib-multithread, -[ --enable-newlib-multithread enable support for multiple threads], -[case "${enableval}" in - yes) newlib_multithread=yes ;; - no) newlib_multithread=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for newlib-multithread option) ;; - esac], [newlib_multithread=yes])dnl - -dnl Support --enable-newlib-iconv -AC_ARG_ENABLE(newlib-iconv, -[ --enable-newlib-iconv enable iconv library support], -[if test "${newlib_iconv+set}" != set; then - case "${enableval}" in - yes) newlib_iconv=yes ;; - no) newlib_iconv=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for newlib-iconv option) ;; - esac - fi], [newlib_iconv=${newlib_iconv}])dnl - -dnl Support --enable-newlib-elix-level -AC_ARG_ENABLE(newlib-elix-level, -[ --enable-newlib-elix-level supply desired elix library level (1-4)], -[case "${enableval}" in - 0) newlib_elix_level=0 ;; - 1) newlib_elix_level=1 ;; - 2) newlib_elix_level=2 ;; - 3) newlib_elix_level=3 ;; - 4) newlib_elix_level=4 ;; - *) AC_MSG_ERROR(bad value ${enableval} for newlib-elix-level option) ;; - esac], [newlib_elix_level=0])dnl - -dnl Support --disable-newlib-io-float -AC_ARG_ENABLE(newlib-io-float, -[ --disable-newlib-io-float disable printf/scanf family float support], -[case "${enableval}" in - yes) newlib_io_float=yes ;; - no) newlib_io_float=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for newlib-io-float option) ;; - esac], [newlib_io_float=yes])dnl - -dnl Support --disable-newlib-supplied-syscalls -AC_ARG_ENABLE(newlib-supplied-syscalls, -[ --disable-newlib-supplied-syscalls disable newlib from supplying syscalls], -[case "${enableval}" in - yes) newlib_may_supply_syscalls=yes ;; - no) newlib_may_supply_syscalls=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for newlib-supplied-syscalls option) ;; - esac], [newlib_may_supply_syscalls=yes])dnl - -AM_CONDITIONAL(MAY_SUPPLY_SYSCALLS, test x[$]{newlib_may_supply_syscalls} = xyes) - -dnl We may get other options which we don't document: -dnl --with-target-subdir, --with-multisrctop, --with-multisubdir - -test -z "[$]{with_target_subdir}" && with_target_subdir=. - -if test "[$]{srcdir}" = "."; then - if test "[$]{with_target_subdir}" != "."; then - newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" - else - newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" - fi -else - newlib_basedir="[$]{srcdir}/$1" -fi -AC_SUBST(newlib_basedir) - -AC_CANONICAL_SYSTEM - -AM_INIT_AUTOMAKE(newlib, 1.13.0) - -# FIXME: We temporarily define our own version of AC_PROG_CC. This is -# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We -# are probably using a cross compiler, which will not be able to fully -# link an executable. This should really be fixed in autoconf -# itself. - -AC_DEFUN(LIB_AC_PROG_CC, -[AC_BEFORE([$0], [AC_PROG_CPP])dnl -AC_CHECK_PROG(CC, gcc, gcc) -if test -z "$CC"; then - AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) - test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) -fi - -AC_PROG_CC_GNU - -if test $ac_cv_prog_gcc = yes; then - GCC=yes -dnl Check whether -g works, even if CFLAGS is set, in case the package -dnl plays around with CFLAGS (such as to build both debugging and -dnl normal versions of a library), tasteless as that idea is. - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - AC_PROG_CC_G - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi -]) - -LIB_AC_PROG_CC - -AC_CHECK_TOOL(AS, as) -AC_CHECK_TOOL(AR, ar) -AC_CHECK_TOOL(RANLIB, ranlib, :) - -AC_PROG_INSTALL - -AM_MAINTAINER_MODE - -# We need AC_EXEEXT to keep automake happy in cygnus mode. However, -# at least currently, we never actually build a program, so we never -# need to use $(EXEEXT). Moreover, the test for EXEEXT normally -# fails, because we are probably configuring with a cross compiler -# which can't create executables. So we include AC_EXEEXT to keep -# automake happy, but we don't execute it, since we don't care about -# the result. -if false; then - AC_EXEEXT -fi - -. [$]{newlib_basedir}/configure.host - -newlib_cflags="[$]{newlib_cflags} -fno-builtin" - -NEWLIB_CFLAGS=${newlib_cflags} -AC_SUBST(NEWLIB_CFLAGS) - -LDFLAGS=${ldflags} -AC_SUBST(LDFLAGS) - -AM_CONDITIONAL(ELIX_LEVEL_0, test x[$]{newlib_elix_level} = x0) -AM_CONDITIONAL(ELIX_LEVEL_1, test x[$]{newlib_elix_level} = x1) -AM_CONDITIONAL(ELIX_LEVEL_2, test x[$]{newlib_elix_level} = x2) -AM_CONDITIONAL(ELIX_LEVEL_3, test x[$]{newlib_elix_level} = x3) -AM_CONDITIONAL(ELIX_LEVEL_4, test x[$]{newlib_elix_level} = x4) - -AM_CONDITIONAL(USE_LIBTOOL, test x[$]{use_libtool} = xyes) - -# Hard-code OBJEXT. Normally it is set by AC_OBJEXT, but we -# use oext, which is set in configure.host based on the target platform. -OBJEXT=${oext} - -AC_SUBST(OBJEXT) -AC_SUBST(oext) -AC_SUBST(aext) - -AC_SUBST(libm_machine_dir) -AC_SUBST(machine_dir) -AC_SUBST(sys_dir) -]) - -# Do all the work for Automake. This macro actually does too much -- -# some checks are only needed if your package does certain things. -# But this isn't really a big deal. - -# serial 1 - -dnl Usage: -dnl AM_INIT_AUTOMAKE(package,version, [no-define]) - -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL]) -PACKAGE=[$1] -AC_SUBST(PACKAGE) -VERSION=[$2] -AC_SUBST(VERSION) -dnl test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -fi -ifelse([$3],, -AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) -AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) -AC_REQUIRE([AM_SANITY_CHECK]) -AC_REQUIRE([AC_ARG_PROGRAM]) -dnl FIXME This is truly gross. -missing_dir=`cd $ac_aux_dir && pwd` -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir) -AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir) -AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) -AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) -AC_REQUIRE([AC_PROG_MAKE_SET])]) - -# Copyright 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"]) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION so it can be traced. -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.4-p6])]) - -# -# Check to make sure that the build environment is sane. -# - -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftestfile -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` - if test "[$]*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftestfile` - fi - if test "[$]*" != "X $srcdir/configure conftestfile" \ - && test "[$]*" != "X conftestfile $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - - test "[$]2" = conftestfile - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -rm -f conftest* -AC_MSG_RESULT(yes)]) - -dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) -dnl The program must properly implement --version. -AC_DEFUN([AM_MISSING_PROG], -[AC_MSG_CHECKING(for working $2) -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if ($2 --version) < /dev/null > /dev/null 2>&1; then - $1=$2 - AC_MSG_RESULT(found) -else - $1="$3/missing $2" - AC_MSG_RESULT(missing) -fi -AC_SUBST($1)]) - -# Define a conditional. - -AC_DEFUN([AM_CONDITIONAL], -[AC_SUBST($1_TRUE) -AC_SUBST($1_FALSE) -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi]) - -# Add --enable-maintainer-mode option to configure. -# From Jim Meyering - -# serial 1 - -AC_DEFUN([AM_MAINTAINER_MODE], -[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode is disabled by default - AC_ARG_ENABLE(maintainer-mode, -[ --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - USE_MAINTAINER_MODE=$enableval, - USE_MAINTAINER_MODE=no) - AC_MSG_RESULT($USE_MAINTAINER_MODE) - AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST(MAINT)dnl -] -) - diff --git a/newlib/libc/machine/ms1/configure b/newlib/libc/machine/ms1/configure deleted file mode 100755 index bba10b075..000000000 --- a/newlib/libc/machine/ms1/configure +++ /dev/null @@ -1,1880 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: -ac_help="$ac_help - --enable-multilib build many library versions (default)" -ac_help="$ac_help - --enable-target-optspace optimize for space" -ac_help="$ac_help - --enable-malloc-debugging indicate malloc debugging requested" -ac_help="$ac_help - --enable-newlib-multithread enable support for multiple threads" -ac_help="$ac_help - --enable-newlib-iconv enable iconv library support" -ac_help="$ac_help - --enable-newlib-elix-level supply desired elix library level (1-4)" -ac_help="$ac_help - --disable-newlib-io-float disable printf/scanf family float support" -ac_help="$ac_help - --disable-newlib-supplied-syscalls disable newlib from supplying syscalls" -ac_help="$ac_help - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer" - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -ac_max_here_lines=12 - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.13" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=Makefile.am - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -ac_exeext= -ac_objext=o -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - -ac_aux_dir= -for ac_dir in ../../../.. $srcdir/../../../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - -am__api_version="1.4" -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:578: checking for a BSD compatible install" >&5 -if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi -fi -echo "$ac_t""$INSTALL" 1>&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 -echo "configure:631: checking whether build environment is sane" >&5 -# Just in case -sleep 1 -echo timestamp > conftestfile -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftestfile` - fi - if test "$*" != "X $srcdir/configure conftestfile" \ - && test "$*" != "X conftestfile $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - { echo "configure: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" 1>&2; exit 1; } - fi - - test "$2" = conftestfile - ) -then - # Ok. - : -else - { echo "configure: error: newly created file is older than distributed files! -Check your system clock" 1>&2; exit 1; } -fi -rm -f conftest* -echo "$ac_t""yes" 1>&6 -if test "$program_transform_name" = s,x,x,; then - program_transform_name= -else - # Double any \ or $. echo might interpret backslashes. - cat <<\EOF_SED > conftestsed -s,\\,\\\\,g; s,\$,$$,g -EOF_SED - program_transform_name="`echo $program_transform_name|sed -f conftestsed`" - rm -f conftestsed -fi -test "$program_prefix" != NONE && - program_transform_name="s,^,${program_prefix},; $program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" - -# sed with no file args requires a program. -test "$program_transform_name" = "" && program_transform_name="s,x,x," - -echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftestmake <<\EOF -all: - @echo 'ac_maketemp="${MAKE}"' -EOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftestmake -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$ac_t""yes" 1>&6 - SET_MAKE= -else - echo "$ac_t""no" 1>&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - -if test $host != $build; then - ac_tool_prefix=${host_alias}- -else - ac_tool_prefix= -fi - -echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 -echo "configure:721: checking for Cygwin environment" >&5 -if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - ac_cv_cygwin=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_cygwin=no -fi -rm -f conftest* -rm -f conftest* -fi - -echo "$ac_t""$ac_cv_cygwin" 1>&6 -CYGWIN= -test "$ac_cv_cygwin" = yes && CYGWIN=yes -echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 -echo "configure:754: checking for mingw32 environment" >&5 -if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - ac_cv_mingw32=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_mingw32=no -fi -rm -f conftest* -rm -f conftest* -fi - -echo "$ac_t""$ac_cv_mingw32" 1>&6 -MINGW32= -test "$ac_cv_mingw32" = yes && MINGW32=yes - -# Check whether --enable-multilib or --disable-multilib was given. -if test "${enable_multilib+set}" = set; then - enableval="$enable_multilib" - case "${enableval}" in - yes) multilib=yes ;; - no) multilib=no ;; - *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; - esac -else - multilib=yes -fi - -# Check whether --enable-target-optspace or --disable-target-optspace was given. -if test "${enable_target_optspace+set}" = set; then - enableval="$enable_target_optspace" - case "${enableval}" in - yes) target_optspace=yes ;; - no) target_optspace=no ;; - *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; - esac -else - target_optspace= -fi - -# Check whether --enable-malloc-debugging or --disable-malloc-debugging was given. -if test "${enable_malloc_debugging+set}" = set; then - enableval="$enable_malloc_debugging" - case "${enableval}" in - yes) malloc_debugging=yes ;; - no) malloc_debugging=no ;; - *) { echo "configure: error: bad value ${enableval} for malloc-debugging option" 1>&2; exit 1; } ;; - esac -else - malloc_debugging= -fi - -# Check whether --enable-newlib-multithread or --disable-newlib-multithread was given. -if test "${enable_newlib_multithread+set}" = set; then - enableval="$enable_newlib_multithread" - case "${enableval}" in - yes) newlib_multithread=yes ;; - no) newlib_multithread=no ;; - *) { echo "configure: error: bad value ${enableval} for newlib-multithread option" 1>&2; exit 1; } ;; - esac -else - newlib_multithread=yes -fi - -# Check whether --enable-newlib-iconv or --disable-newlib-iconv was given. -if test "${enable_newlib_iconv+set}" = set; then - enableval="$enable_newlib_iconv" - if test "${newlib_iconv+set}" != set; then - case "${enableval}" in - yes) newlib_iconv=yes ;; - no) newlib_iconv=no ;; - *) { echo "configure: error: bad value ${enableval} for newlib-iconv option" 1>&2; exit 1; } ;; - esac - fi -else - newlib_iconv=${newlib_iconv} -fi - -# Check whether --enable-newlib-elix-level or --disable-newlib-elix-level was given. -if test "${enable_newlib_elix_level+set}" = set; then - enableval="$enable_newlib_elix_level" - case "${enableval}" in - 0) newlib_elix_level=0 ;; - 1) newlib_elix_level=1 ;; - 2) newlib_elix_level=2 ;; - 3) newlib_elix_level=3 ;; - 4) newlib_elix_level=4 ;; - *) { echo "configure: error: bad value ${enableval} for newlib-elix-level option" 1>&2; exit 1; } ;; - esac -else - newlib_elix_level=0 -fi - -# Check whether --enable-newlib-io-float or --disable-newlib-io-float was given. -if test "${enable_newlib_io_float+set}" = set; then - enableval="$enable_newlib_io_float" - case "${enableval}" in - yes) newlib_io_float=yes ;; - no) newlib_io_float=no ;; - *) { echo "configure: error: bad value ${enableval} for newlib-io-float option" 1>&2; exit 1; } ;; - esac -else - newlib_io_float=yes -fi - -# Check whether --enable-newlib-supplied-syscalls or --disable-newlib-supplied-syscalls was given. -if test "${enable_newlib_supplied_syscalls+set}" = set; then - enableval="$enable_newlib_supplied_syscalls" - case "${enableval}" in - yes) newlib_may_supply_syscalls=yes ;; - no) newlib_may_supply_syscalls=no ;; - *) { echo "configure: error: bad value ${enableval} for newlib-supplied-syscalls option" 1>&2; exit 1; } ;; - esac -else - newlib_may_supply_syscalls=yes -fi - - - -if test x${newlib_may_supply_syscalls} = xyes; then - MAY_SUPPLY_SYSCALLS_TRUE= - MAY_SUPPLY_SYSCALLS_FALSE='#' -else - MAY_SUPPLY_SYSCALLS_TRUE='#' - MAY_SUPPLY_SYSCALLS_FALSE= -fi - - -test -z "${with_target_subdir}" && with_target_subdir=. - -if test "${srcdir}" = "."; then - if test "${with_target_subdir}" != "."; then - newlib_basedir="${srcdir}/${with_multisrctop}../../../.." - else - newlib_basedir="${srcdir}/${with_multisrctop}../../.." - fi -else - newlib_basedir="${srcdir}/../../.." -fi - - - -# Do some error checking and defaulting for the host and target type. -# The inputs are: -# configure --host=HOST --target=TARGET --build=BUILD NONOPT -# -# The rules are: -# 1. You are not allowed to specify --host, --target, and nonopt at the -# same time. -# 2. Host defaults to nonopt. -# 3. If nonopt is not specified, then host defaults to the current host, -# as determined by config.guess. -# 4. Target and build default to nonopt. -# 5. If nonopt is not specified, then target and build default to host. - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -case $host---$target---$nonopt in -NONE---*---* | *---NONE---* | *---*---NONE) ;; -*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; -esac - - -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } -fi - -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:936: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:957: checking target system type" >&5 - -target_alias=$target -case "$target_alias" in -NONE) - case $nonopt in - NONE) target_alias=$host_alias ;; - *) target_alias=$nonopt ;; - esac ;; -esac - -target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` -target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$target" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:975: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 - -test "$host_alias" != "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - - - -PACKAGE=newlib - -VERSION=1.13.0 - -if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } -fi -cat >> confdefs.h <> confdefs.h <&6 -echo "configure:1018: checking for working aclocal-${am__api_version}" >&5 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then - ACLOCAL=aclocal-${am__api_version} - echo "$ac_t""found" 1>&6 -else - ACLOCAL="$missing_dir/missing aclocal-${am__api_version}" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:1031: checking for working autoconf" >&5 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (autoconf --version) < /dev/null > /dev/null 2>&1; then - AUTOCONF=autoconf - echo "$ac_t""found" 1>&6 -else - AUTOCONF="$missing_dir/missing autoconf" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working automake-${am__api_version}""... $ac_c" 1>&6 -echo "configure:1044: checking for working automake-${am__api_version}" >&5 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then - AUTOMAKE=automake-${am__api_version} - echo "$ac_t""found" 1>&6 -else - AUTOMAKE="$missing_dir/missing automake-${am__api_version}" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:1057: checking for working autoheader" >&5 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (autoheader --version) < /dev/null > /dev/null 2>&1; then - AUTOHEADER=autoheader - echo "$ac_t""found" 1>&6 -else - AUTOHEADER="$missing_dir/missing autoheader" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:1070: checking for working makeinfo" >&5 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (makeinfo --version) < /dev/null > /dev/null 2>&1; then - MAKEINFO=makeinfo - echo "$ac_t""found" 1>&6 -else - MAKEINFO="$missing_dir/missing makeinfo" - echo "$ac_t""missing" 1>&6 -fi - - - -# FIXME: We temporarily define our own version of AC_PROG_CC. This is -# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We -# are probably using a cross compiler, which will not be able to fully -# link an executable. This should really be fixed in autoconf -# itself. - - - -# Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1095: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1125: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_prog_rejected=no - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - break - fi - done - IFS="$ac_save_ifs" -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" "$@" - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1174: checking whether we are using GNU C" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi -fi - -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 - -if test $ac_cv_prog_gcc = yes; then - GCC=yes - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1198: checking whether ${CC-cc} accepts -g" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_cc_g=yes -else - ac_cv_prog_cc_g=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi - - -# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. -set dummy ${ac_tool_prefix}as; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1229: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AS="${ac_tool_prefix}as" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" -fi -fi -AS="$ac_cv_prog_AS" -if test -n "$AS"; then - echo "$ac_t""$AS" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - - -# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1261: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" -fi -fi -AR="$ac_cv_prog_AR" -if test -n "$AR"; then - echo "$ac_t""$AR" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - - -# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1293: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_RANLIB"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1325: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_RANLIB="ranlib" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" -fi -fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - RANLIB=":" -fi -fi - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:1370: checking for a BSD compatible install" >&5 -if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi -fi -echo "$ac_t""$INSTALL" 1>&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - -echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:1424: checking whether to enable maintainer-specific portions of Makefiles" >&5 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then - enableval="$enable_maintainer_mode" - USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 - - -if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - MAINT=$MAINTAINER_MODE_TRUE - - - -# We need AC_EXEEXT to keep automake happy in cygnus mode. However, -# at least currently, we never actually build a program, so we never -# need to use $(EXEEXT). Moreover, the test for EXEEXT normally -# fails, because we are probably configuring with a cross compiler -# which can't create executables. So we include AC_EXEEXT to keep -# automake happy, but we don't execute it, since we don't care about -# the result. -if false; then - - -echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:1458: checking for executable suffix" >&5 -if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$CYGWIN" = yes || test "$MINGW32" = yes; then - ac_cv_exeext=.exe -else - rm -f conftest* - echo 'int main () { return 0; }' > conftest.$ac_ext - ac_cv_exeext= - if { (eval echo configure:1468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then - for file in conftest.*; do - case $file in - *.c | *.o | *.obj) ;; - *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; - esac - done - else - { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } - fi - rm -f conftest* - test x"${ac_cv_exeext}" = x && ac_cv_exeext=no -fi -fi - -EXEEXT="" -test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} -echo "$ac_t""${ac_cv_exeext}" 1>&6 -ac_exeext=$EXEEXT - -fi - -. ${newlib_basedir}/configure.host - -newlib_cflags="${newlib_cflags} -fno-builtin" - -NEWLIB_CFLAGS=${newlib_cflags} - - -LDFLAGS=${ldflags} - - - - -if test x${newlib_elix_level} = x0; then - ELIX_LEVEL_0_TRUE= - ELIX_LEVEL_0_FALSE='#' -else - ELIX_LEVEL_0_TRUE='#' - ELIX_LEVEL_0_FALSE= -fi - - -if test x${newlib_elix_level} = x1; then - ELIX_LEVEL_1_TRUE= - ELIX_LEVEL_1_FALSE='#' -else - ELIX_LEVEL_1_TRUE='#' - ELIX_LEVEL_1_FALSE= -fi - - -if test x${newlib_elix_level} = x2; then - ELIX_LEVEL_2_TRUE= - ELIX_LEVEL_2_FALSE='#' -else - ELIX_LEVEL_2_TRUE='#' - ELIX_LEVEL_2_FALSE= -fi - - -if test x${newlib_elix_level} = x3; then - ELIX_LEVEL_3_TRUE= - ELIX_LEVEL_3_FALSE='#' -else - ELIX_LEVEL_3_TRUE='#' - ELIX_LEVEL_3_FALSE= -fi - - -if test x${newlib_elix_level} = x4; then - ELIX_LEVEL_4_TRUE= - ELIX_LEVEL_4_FALSE='#' -else - ELIX_LEVEL_4_TRUE='#' - ELIX_LEVEL_4_FALSE= -fi - - - -if test x${use_libtool} = xyes; then - USE_LIBTOOL_TRUE= - USE_LIBTOOL_FALSE='#' -else - USE_LIBTOOL_TRUE='#' - USE_LIBTOOL_FALSE= -fi - -# Hard-code OBJEXT. Normally it is set by AC_OBJEXT, but we -# use oext, which is set in configure.host based on the target platform. -OBJEXT=${oext} - - - - - - - - - - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs - - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir -ac_given_INSTALL="$INSTALL" - -trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@FFLAGS@%$FFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@MAY_SUPPLY_SYSCALLS_TRUE@%$MAY_SUPPLY_SYSCALLS_TRUE%g -s%@MAY_SUPPLY_SYSCALLS_FALSE@%$MAY_SUPPLY_SYSCALLS_FALSE%g -s%@newlib_basedir@%$newlib_basedir%g -s%@host@%$host%g -s%@host_alias@%$host_alias%g -s%@host_cpu@%$host_cpu%g -s%@host_vendor@%$host_vendor%g -s%@host_os@%$host_os%g -s%@target@%$target%g -s%@target_alias@%$target_alias%g -s%@target_cpu@%$target_cpu%g -s%@target_vendor@%$target_vendor%g -s%@target_os@%$target_os%g -s%@build@%$build%g -s%@build_alias@%$build_alias%g -s%@build_cpu@%$build_cpu%g -s%@build_vendor@%$build_vendor%g -s%@build_os@%$build_os%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g -s%@INSTALL_DATA@%$INSTALL_DATA%g -s%@PACKAGE@%$PACKAGE%g -s%@VERSION@%$VERSION%g -s%@ACLOCAL@%$ACLOCAL%g -s%@AUTOCONF@%$AUTOCONF%g -s%@AUTOMAKE@%$AUTOMAKE%g -s%@AUTOHEADER@%$AUTOHEADER%g -s%@MAKEINFO@%$MAKEINFO%g -s%@SET_MAKE@%$SET_MAKE%g -s%@CC@%$CC%g -s%@AS@%$AS%g -s%@AR@%$AR%g -s%@RANLIB@%$RANLIB%g -s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g -s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g -s%@MAINT@%$MAINT%g -s%@EXEEXT@%$EXEEXT%g -s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g -s%@ELIX_LEVEL_0_TRUE@%$ELIX_LEVEL_0_TRUE%g -s%@ELIX_LEVEL_0_FALSE@%$ELIX_LEVEL_0_FALSE%g -s%@ELIX_LEVEL_1_TRUE@%$ELIX_LEVEL_1_TRUE%g -s%@ELIX_LEVEL_1_FALSE@%$ELIX_LEVEL_1_FALSE%g -s%@ELIX_LEVEL_2_TRUE@%$ELIX_LEVEL_2_TRUE%g -s%@ELIX_LEVEL_2_FALSE@%$ELIX_LEVEL_2_FALSE%g -s%@ELIX_LEVEL_3_TRUE@%$ELIX_LEVEL_3_TRUE%g -s%@ELIX_LEVEL_3_FALSE@%$ELIX_LEVEL_3_FALSE%g -s%@ELIX_LEVEL_4_TRUE@%$ELIX_LEVEL_4_TRUE%g -s%@ELIX_LEVEL_4_FALSE@%$ELIX_LEVEL_4_FALSE%g -s%@USE_LIBTOOL_TRUE@%$USE_LIBTOOL_TRUE%g -s%@USE_LIBTOOL_FALSE@%$USE_LIBTOOL_FALSE%g -s%@OBJEXT@%$OBJEXT%g -s%@oext@%$oext%g -s%@aext@%$aext%g -s%@libm_machine_dir@%$libm_machine_dir%g -s%@machine_dir@%$machine_dir%g -s%@sys_dir@%$sys_dir%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - diff --git a/newlib/libc/machine/ms1/configure.in b/newlib/libc/machine/ms1/configure.in deleted file mode 100644 index b64b97569..000000000 --- a/newlib/libc/machine/ms1/configure.in +++ /dev/null @@ -1,12 +0,0 @@ -dnl This is the newlib/libc/machine/ms1 configure.in file. -dnl Process this file with autoconf to produce a configure script. - -AC_PREREQ(2.5) -AC_INIT(Makefile.am) - -dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. -AC_CONFIG_AUX_DIR(../../../..) - -NEWLIB_CONFIGURE(../../..) - -AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/ms1/setjmp.S b/newlib/libc/machine/ms1/setjmp.S deleted file mode 100644 index 1f95c6789..000000000 --- a/newlib/libc/machine/ms1/setjmp.S +++ /dev/null @@ -1,99 +0,0 @@ -# setjmp/longjmp for ms1. -# -# The jmpbuf looks like this: -# -# Register jmpbuf offset -# R0 --- -- -# R1 0x4 4 -# R2 0x8 8 -# R3 0xc 12 -# R4 0x10 16 -# R5 0x14 20 -# R6 0x18 24 -# R7 0x1c 28 -# R8 0x20 32 -# R9 ---- -- -# R10 ---- -- -# R11 0x2c 44 -# R12 0x30 48 -# R13 0x34 52 -# R14 0x38 56 -# R15 0x3c 60 -# -# R1 contains the pointer to jmpbuf - .text - .global setjmp - .type setjmp ,@function -setjmp: - - stw r1, r1, #4 - or r0, r0, r0 - stw r2, r1, #8 - or r0, r0, r0 - stw r3, r1, #12 - or r0, r0, r0 - stw r4, r1, #16 - or r0, r0, r0 - stw r5, r1, #20 - or r0, r0, r0 - stw r6, r1, #24 - or r0, r0, r0 - stw r7, r1, #28 - or r0, r0, r0 - stw r8, r1, #32 - or r0, r0, r0 - stw r11, r1, #44 - or r0, r0, r0 - stw r12, r1, #48 - or r0, r0, r0 - stw r13, r1, #52 - or r0, r0, r0 - stw r14, r1, #56 - or r0, r0, r0 - stw r15, r1, #60 - - jal r0, r14 - addi r11, r0, #0 -.Lend1: - .size setjmp,.Lend1-setjmp - - .global longjmp - .type longjmp,@function -longjmp: - or r9, r1, r1 - or r11, r2, r2 - ldw r1, r1, #4 - or r0, r0, r0 - ldw r2, r1, #8 - or r0, r0, r0 - ldw r3, r1, #12 - or r0, r0, r0 - ldw r4, r1, #16 - or r0, r0, r0 - ldw r5, r1, #20 - or r0, r0, r0 - ldw r6, r1, #24 - or r0, r0, r0 - ldw r7, r1, #28 - or r0, r0, r0 - ldw r8, r1, #32 - or r0, r0, r0 - - - ldw r12, r1, #48 - or r0, r0, r0 - ldw r13, r1, #52 - or r0, r0, r0 - ldw r14, r1, #56 - or r0, r0, r0 - ldw r15, r1, #60 - - brne r0, r11, .L01 - or r0, r0, r0 - - addi r11, r0, #1 -.L01: - jal r0, r14 - or r0, r0, r0 -.Lend2: - .size longjmp,.Lend2-longjmp2 diff --git a/newlib/libc/machine/mt/Makefile.am b/newlib/libc/machine/mt/Makefile.am new file mode 100644 index 000000000..1c65b9ffe --- /dev/null +++ b/newlib/libc/machine/mt/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/mt/Makefile.in b/newlib/libc/machine/mt/Makefile.in new file mode 100644 index 000000000..9736912dc --- /dev/null +++ b/newlib/libc/machine/mt/Makefile.in @@ -0,0 +1,327 @@ +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_alias = @build_alias@ +build_triplet = @build@ +host_alias = @host_alias@ +host_triplet = @host@ +target_alias = @target_alias@ +target_triplet = @target@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +LDFLAGS = @LDFLAGS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +aext = @aext@ +libm_machine_dir = @libm_machine_dir@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +oext = @oext@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in \ + ../../../acinclude.m4 ../../../aclocal.m4 \ + ../../../libtool.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + -rm -f config.status + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/mt/aclocal.m4 b/newlib/libc/machine/mt/aclocal.m4 new file mode 100644 index 000000000..0a1490998 --- /dev/null +++ b/newlib/libc/machine/mt/aclocal.m4 @@ -0,0 +1,366 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4-p6 + +dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-malloc-debugging - currently only supported for Cygwin +AC_ARG_ENABLE(malloc-debugging, +[ --enable-malloc-debugging indicate malloc debugging requested], +[case "${enableval}" in + yes) malloc_debugging=yes ;; + no) malloc_debugging=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for malloc-debugging option) ;; + esac], [malloc_debugging=])dnl + +dnl Support --enable-newlib-multithread +AC_ARG_ENABLE(newlib-multithread, +[ --enable-newlib-multithread enable support for multiple threads], +[case "${enableval}" in + yes) newlib_multithread=yes ;; + no) newlib_multithread=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-multithread option) ;; + esac], [newlib_multithread=yes])dnl + +dnl Support --enable-newlib-iconv +AC_ARG_ENABLE(newlib-iconv, +[ --enable-newlib-iconv enable iconv library support], +[if test "${newlib_iconv+set}" != set; then + case "${enableval}" in + yes) newlib_iconv=yes ;; + no) newlib_iconv=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-iconv option) ;; + esac + fi], [newlib_iconv=${newlib_iconv}])dnl + +dnl Support --enable-newlib-elix-level +AC_ARG_ENABLE(newlib-elix-level, +[ --enable-newlib-elix-level supply desired elix library level (1-4)], +[case "${enableval}" in + 0) newlib_elix_level=0 ;; + 1) newlib_elix_level=1 ;; + 2) newlib_elix_level=2 ;; + 3) newlib_elix_level=3 ;; + 4) newlib_elix_level=4 ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-elix-level option) ;; + esac], [newlib_elix_level=0])dnl + +dnl Support --disable-newlib-io-float +AC_ARG_ENABLE(newlib-io-float, +[ --disable-newlib-io-float disable printf/scanf family float support], +[case "${enableval}" in + yes) newlib_io_float=yes ;; + no) newlib_io_float=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-io-float option) ;; + esac], [newlib_io_float=yes])dnl + +dnl Support --disable-newlib-supplied-syscalls +AC_ARG_ENABLE(newlib-supplied-syscalls, +[ --disable-newlib-supplied-syscalls disable newlib from supplying syscalls], +[case "${enableval}" in + yes) newlib_may_supply_syscalls=yes ;; + no) newlib_may_supply_syscalls=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-supplied-syscalls option) ;; + esac], [newlib_may_supply_syscalls=yes])dnl + +AM_CONDITIONAL(MAY_SUPPLY_SYSCALLS, test x[$]{newlib_may_supply_syscalls} = xyes) + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_SYSTEM + +AM_INIT_AUTOMAKE(newlib, 1.13.0) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +LDFLAGS=${ldflags} +AC_SUBST(LDFLAGS) + +AM_CONDITIONAL(ELIX_LEVEL_0, test x[$]{newlib_elix_level} = x0) +AM_CONDITIONAL(ELIX_LEVEL_1, test x[$]{newlib_elix_level} = x1) +AM_CONDITIONAL(ELIX_LEVEL_2, test x[$]{newlib_elix_level} = x2) +AM_CONDITIONAL(ELIX_LEVEL_3, test x[$]{newlib_elix_level} = x3) +AM_CONDITIONAL(ELIX_LEVEL_4, test x[$]{newlib_elix_level} = x4) + +AM_CONDITIONAL(USE_LIBTOOL, test x[$]{use_libtool} = xyes) + +# Hard-code OBJEXT. Normally it is set by AC_OBJEXT, but we +# use oext, which is set in configure.host based on the target platform. +OBJEXT=${oext} + +AC_SUBST(OBJEXT) +AC_SUBST(oext) +AC_SUBST(aext) + +AC_SUBST(libm_machine_dir) +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# Copyright 2002 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"]) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION so it can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], + [AM_AUTOMAKE_VERSION([1.4-p6])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN([AM_MISSING_PROG], +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Define a conditional. + +AC_DEFUN([AM_CONDITIONAL], +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN([AM_MAINTAINER_MODE], +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + diff --git a/newlib/libc/machine/mt/configure b/newlib/libc/machine/mt/configure new file mode 100755 index 000000000..bba10b075 --- /dev/null +++ b/newlib/libc/machine/mt/configure @@ -0,0 +1,1880 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-malloc-debugging indicate malloc debugging requested" +ac_help="$ac_help + --enable-newlib-multithread enable support for multiple threads" +ac_help="$ac_help + --enable-newlib-iconv enable iconv library support" +ac_help="$ac_help + --enable-newlib-elix-level supply desired elix library level (1-4)" +ac_help="$ac_help + --disable-newlib-io-float disable printf/scanf family float support" +ac_help="$ac_help + --disable-newlib-supplied-syscalls disable newlib from supplying syscalls" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=Makefile.am + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +am__api_version="1.4" +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-malloc-debugging or --disable-malloc-debugging was given. +if test "${enable_malloc_debugging+set}" = set; then + enableval="$enable_malloc_debugging" + case "${enableval}" in + yes) malloc_debugging=yes ;; + no) malloc_debugging=no ;; + *) { echo "configure: error: bad value ${enableval} for malloc-debugging option" 1>&2; exit 1; } ;; + esac +else + malloc_debugging= +fi + +# Check whether --enable-newlib-multithread or --disable-newlib-multithread was given. +if test "${enable_newlib_multithread+set}" = set; then + enableval="$enable_newlib_multithread" + case "${enableval}" in + yes) newlib_multithread=yes ;; + no) newlib_multithread=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-multithread option" 1>&2; exit 1; } ;; + esac +else + newlib_multithread=yes +fi + +# Check whether --enable-newlib-iconv or --disable-newlib-iconv was given. +if test "${enable_newlib_iconv+set}" = set; then + enableval="$enable_newlib_iconv" + if test "${newlib_iconv+set}" != set; then + case "${enableval}" in + yes) newlib_iconv=yes ;; + no) newlib_iconv=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-iconv option" 1>&2; exit 1; } ;; + esac + fi +else + newlib_iconv=${newlib_iconv} +fi + +# Check whether --enable-newlib-elix-level or --disable-newlib-elix-level was given. +if test "${enable_newlib_elix_level+set}" = set; then + enableval="$enable_newlib_elix_level" + case "${enableval}" in + 0) newlib_elix_level=0 ;; + 1) newlib_elix_level=1 ;; + 2) newlib_elix_level=2 ;; + 3) newlib_elix_level=3 ;; + 4) newlib_elix_level=4 ;; + *) { echo "configure: error: bad value ${enableval} for newlib-elix-level option" 1>&2; exit 1; } ;; + esac +else + newlib_elix_level=0 +fi + +# Check whether --enable-newlib-io-float or --disable-newlib-io-float was given. +if test "${enable_newlib_io_float+set}" = set; then + enableval="$enable_newlib_io_float" + case "${enableval}" in + yes) newlib_io_float=yes ;; + no) newlib_io_float=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-io-float option" 1>&2; exit 1; } ;; + esac +else + newlib_io_float=yes +fi + +# Check whether --enable-newlib-supplied-syscalls or --disable-newlib-supplied-syscalls was given. +if test "${enable_newlib_supplied_syscalls+set}" = set; then + enableval="$enable_newlib_supplied_syscalls" + case "${enableval}" in + yes) newlib_may_supply_syscalls=yes ;; + no) newlib_may_supply_syscalls=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-supplied-syscalls option" 1>&2; exit 1; } ;; + esac +else + newlib_may_supply_syscalls=yes +fi + + + +if test x${newlib_may_supply_syscalls} = xyes; then + MAY_SUPPLY_SYSCALLS_TRUE= + MAY_SUPPLY_SYSCALLS_FALSE='#' +else + MAY_SUPPLY_SYSCALLS_TRUE='#' + MAY_SUPPLY_SYSCALLS_FALSE= +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Do some error checking and defaulting for the host and target type. +# The inputs are: +# configure --host=HOST --target=TARGET --build=BUILD NONOPT +# +# The rules are: +# 1. You are not allowed to specify --host, --target, and nonopt at the +# same time. +# 2. Host defaults to nonopt. +# 3. If nonopt is not specified, then host defaults to the current host, +# as determined by config.guess. +# 4. Target and build default to nonopt. +# 5. If nonopt is not specified, then target and build default to host. + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +case $host---$target---$nonopt in +NONE---*---* | *---NONE---* | *---*---NONE) ;; +*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; +esac + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:936: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + +echo $ac_n "checking target system type""... $ac_c" 1>&6 +echo "configure:957: checking target system type" >&5 + +target_alias=$target +case "$target_alias" in +NONE) + case $nonopt in + NONE) target_alias=$host_alias ;; + *) target_alias=$nonopt ;; + esac ;; +esac + +target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` +target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$target" 1>&6 + +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:975: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + +test "$host_alias" != "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + + + +PACKAGE=newlib + +VERSION=1.13.0 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <> confdefs.h <&6 +echo "configure:1018: checking for working aclocal-${am__api_version}" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal-${am__api_version} + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal-${am__api_version}" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:1031: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake-${am__api_version}""... $ac_c" 1>&6 +echo "configure:1044: checking for working automake-${am__api_version}" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake-${am__api_version} + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake-${am__api_version}" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:1057: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:1070: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1095: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1125: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1174: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1198: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1229: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1261: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1293: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1325: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1370: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1424: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1458: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + +LDFLAGS=${ldflags} + + + + +if test x${newlib_elix_level} = x0; then + ELIX_LEVEL_0_TRUE= + ELIX_LEVEL_0_FALSE='#' +else + ELIX_LEVEL_0_TRUE='#' + ELIX_LEVEL_0_FALSE= +fi + + +if test x${newlib_elix_level} = x1; then + ELIX_LEVEL_1_TRUE= + ELIX_LEVEL_1_FALSE='#' +else + ELIX_LEVEL_1_TRUE='#' + ELIX_LEVEL_1_FALSE= +fi + + +if test x${newlib_elix_level} = x2; then + ELIX_LEVEL_2_TRUE= + ELIX_LEVEL_2_FALSE='#' +else + ELIX_LEVEL_2_TRUE='#' + ELIX_LEVEL_2_FALSE= +fi + + +if test x${newlib_elix_level} = x3; then + ELIX_LEVEL_3_TRUE= + ELIX_LEVEL_3_FALSE='#' +else + ELIX_LEVEL_3_TRUE='#' + ELIX_LEVEL_3_FALSE= +fi + + +if test x${newlib_elix_level} = x4; then + ELIX_LEVEL_4_TRUE= + ELIX_LEVEL_4_FALSE='#' +else + ELIX_LEVEL_4_TRUE='#' + ELIX_LEVEL_4_FALSE= +fi + + + +if test x${use_libtool} = xyes; then + USE_LIBTOOL_TRUE= + USE_LIBTOOL_FALSE='#' +else + USE_LIBTOOL_TRUE='#' + USE_LIBTOOL_FALSE= +fi + +# Hard-code OBJEXT. Normally it is set by AC_OBJEXT, but we +# use oext, which is set in configure.host based on the target platform. +OBJEXT=${oext} + + + + + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS </dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@MAY_SUPPLY_SYSCALLS_TRUE@%$MAY_SUPPLY_SYSCALLS_TRUE%g +s%@MAY_SUPPLY_SYSCALLS_FALSE@%$MAY_SUPPLY_SYSCALLS_FALSE%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@target@%$target%g +s%@target_alias@%$target_alias%g +s%@target_cpu@%$target_cpu%g +s%@target_vendor@%$target_vendor%g +s%@target_os@%$target_os%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@ELIX_LEVEL_0_TRUE@%$ELIX_LEVEL_0_TRUE%g +s%@ELIX_LEVEL_0_FALSE@%$ELIX_LEVEL_0_FALSE%g +s%@ELIX_LEVEL_1_TRUE@%$ELIX_LEVEL_1_TRUE%g +s%@ELIX_LEVEL_1_FALSE@%$ELIX_LEVEL_1_FALSE%g +s%@ELIX_LEVEL_2_TRUE@%$ELIX_LEVEL_2_TRUE%g +s%@ELIX_LEVEL_2_FALSE@%$ELIX_LEVEL_2_FALSE%g +s%@ELIX_LEVEL_3_TRUE@%$ELIX_LEVEL_3_TRUE%g +s%@ELIX_LEVEL_3_FALSE@%$ELIX_LEVEL_3_FALSE%g +s%@ELIX_LEVEL_4_TRUE@%$ELIX_LEVEL_4_TRUE%g +s%@ELIX_LEVEL_4_FALSE@%$ELIX_LEVEL_4_FALSE%g +s%@USE_LIBTOOL_TRUE@%$USE_LIBTOOL_TRUE%g +s%@USE_LIBTOOL_FALSE@%$USE_LIBTOOL_FALSE%g +s%@OBJEXT@%$OBJEXT%g +s%@oext@%$oext%g +s%@aext@%$aext%g +s%@libm_machine_dir@%$libm_machine_dir%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/mt/configure.in b/newlib/libc/machine/mt/configure.in new file mode 100644 index 000000000..b64b97569 --- /dev/null +++ b/newlib/libc/machine/mt/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/ms1 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(Makefile.am) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/mt/setjmp.S b/newlib/libc/machine/mt/setjmp.S new file mode 100644 index 000000000..1f95c6789 --- /dev/null +++ b/newlib/libc/machine/mt/setjmp.S @@ -0,0 +1,99 @@ +# setjmp/longjmp for ms1. +# +# The jmpbuf looks like this: +# +# Register jmpbuf offset +# R0 --- -- +# R1 0x4 4 +# R2 0x8 8 +# R3 0xc 12 +# R4 0x10 16 +# R5 0x14 20 +# R6 0x18 24 +# R7 0x1c 28 +# R8 0x20 32 +# R9 ---- -- +# R10 ---- -- +# R11 0x2c 44 +# R12 0x30 48 +# R13 0x34 52 +# R14 0x38 56 +# R15 0x3c 60 +# +# R1 contains the pointer to jmpbuf + .text + .global setjmp + .type setjmp ,@function +setjmp: + + stw r1, r1, #4 + or r0, r0, r0 + stw r2, r1, #8 + or r0, r0, r0 + stw r3, r1, #12 + or r0, r0, r0 + stw r4, r1, #16 + or r0, r0, r0 + stw r5, r1, #20 + or r0, r0, r0 + stw r6, r1, #24 + or r0, r0, r0 + stw r7, r1, #28 + or r0, r0, r0 + stw r8, r1, #32 + or r0, r0, r0 + stw r11, r1, #44 + or r0, r0, r0 + stw r12, r1, #48 + or r0, r0, r0 + stw r13, r1, #52 + or r0, r0, r0 + stw r14, r1, #56 + or r0, r0, r0 + stw r15, r1, #60 + + jal r0, r14 + addi r11, r0, #0 +.Lend1: + .size setjmp,.Lend1-setjmp + + .global longjmp + .type longjmp,@function +longjmp: + or r9, r1, r1 + or r11, r2, r2 + ldw r1, r1, #4 + or r0, r0, r0 + ldw r2, r1, #8 + or r0, r0, r0 + ldw r3, r1, #12 + or r0, r0, r0 + ldw r4, r1, #16 + or r0, r0, r0 + ldw r5, r1, #20 + or r0, r0, r0 + ldw r6, r1, #24 + or r0, r0, r0 + ldw r7, r1, #28 + or r0, r0, r0 + ldw r8, r1, #32 + or r0, r0, r0 + + + ldw r12, r1, #48 + or r0, r0, r0 + ldw r13, r1, #52 + or r0, r0, r0 + ldw r14, r1, #56 + or r0, r0, r0 + ldw r15, r1, #60 + + brne r0, r11, .L01 + or r0, r0, r0 + + addi r11, r0, #1 +.L01: + jal r0, r14 + or r0, r0, r0 +.Lend2: + .size longjmp,.Lend2-longjmp2 -- cgit v1.2.3