From d383f2bcdb6ff13cc562fce1ff55d826035debad Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Mon, 6 Mar 2023 17:36:31 +0100 Subject: Simplify source tree Now just use make in the root directory to build. --- AT91SAM7S256/SAM7S256/gcc/.gitignore | 3 - AT91SAM7S256/SAM7S256/gcc/Makefile | 114 --------------- AT91SAM7S256/SAM7S256/gcc/lib/abort.c | 32 ---- AT91SAM7S256/SAM7S256/gcc/lib/errno.c | 32 ---- AT91SAM7S256/SAM7S256/gcc/lib/sbrk.c | 44 ------ AT91SAM7S256/SAM7S256/gcc/lib/sscanf.c | 49 ------- AT91SAM7S256/SAM7S256/gcc/lib/strtod.c | 257 --------------------------------- AT91SAM7S256/SAM7S256/gcc/nxt.ld | 167 --------------------- 8 files changed, 698 deletions(-) delete mode 100644 AT91SAM7S256/SAM7S256/gcc/.gitignore delete mode 100644 AT91SAM7S256/SAM7S256/gcc/Makefile delete mode 100644 AT91SAM7S256/SAM7S256/gcc/lib/abort.c delete mode 100644 AT91SAM7S256/SAM7S256/gcc/lib/errno.c delete mode 100644 AT91SAM7S256/SAM7S256/gcc/lib/sbrk.c delete mode 100644 AT91SAM7S256/SAM7S256/gcc/lib/sscanf.c delete mode 100644 AT91SAM7S256/SAM7S256/gcc/lib/strtod.c delete mode 100644 AT91SAM7S256/SAM7S256/gcc/nxt.ld (limited to 'AT91SAM7S256/SAM7S256/gcc') diff --git a/AT91SAM7S256/SAM7S256/gcc/.gitignore b/AT91SAM7S256/SAM7S256/gcc/.gitignore deleted file mode 100644 index 83a204c..0000000 --- a/AT91SAM7S256/SAM7S256/gcc/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -version.mak -nxt_firmware.bin -nxt_firmware.rfw diff --git a/AT91SAM7S256/SAM7S256/gcc/Makefile b/AT91SAM7S256/SAM7S256/gcc/Makefile deleted file mode 100644 index 2562b54..0000000 --- a/AT91SAM7S256/SAM7S256/gcc/Makefile +++ /dev/null @@ -1,114 +0,0 @@ -BASE = ../.. -SRCDIR = $(BASE)/Source -DBGDIR = $(BASE)/armdebug/Debugger -CPUINCDIR = $(BASE)/SAM7S256/Include - -DATE_FMT = +%Y-%m-%dT%H:%M -ifndef SOURCE_DATE_EPOCH - SOURCE_DATE_EPOCH = $(shell git log -1 --pretty=%ct) -endif -BUILD_DATE ?= $(shell LC_ALL=C date -u -d "@$(SOURCE_DATE_EPOCH)" "$(DATE_FMT)" 2>/dev/null \ - || LC_ALL=C date -u -r "$(SOURCE_DATE_EPOCH)" "$(DATE_FMT)" 2>/dev/null \ - || LC_ALL=C date -u "$(DATE_FMT)") - -TARGET = nxt_firmware - -# Set to 'y' to enable embedded debuger. -ARMDEBUG = n - -ARM_SOURCES = -THUMB_SOURCES = c_button.c c_cmd.c c_comm.c c_display.c c_input.c c_ioctrl.c \ - c_loader.c c_lowspeed.c c_output.c c_sound.c c_ui.c \ - d_bt.c d_button.c d_display.c d_hispeed.c d_input.c \ - d_ioctrl.c d_loader.c d_lowspeed.c d_output.c d_sound.c \ - d_timer.c d_usb.c \ - m_sched.c \ - abort.c errno.c sbrk.c strtod.c sscanf.c \ - Cstartup_SAM7.c - -ASM_ARM_SOURCE = Cstartup.S -ASM_THUMB_SOURCE = - -vpath %.c $(SRCDIR) -vpath %.c $(CPUINCDIR) -vpath %.c lib -vpath %.S $(CPUINCDIR) - -INCLUDES = - -MCU = arm7tdmi -STARTOFUSERFLASH_DEFINES = -DSTARTOFUSERFLASH_FROM_LINKER=1 -VERSION_DEFINES = -D'BUILD_DATE="$(BUILD_DATE)"' -DEFINES = -DPROTOTYPE_PCB_4 -DNEW_MENU -DROM_RUN -DVECTORS_IN_RAM \ - $(STARTOFUSERFLASH_DEFINES) $(VERSION_DEFINES) -OPTIMIZE = -Os -fno-strict-aliasing \ - -ffunction-sections -fdata-sections -WARNINGS = -Wall -W -Wundef -Wno-unused -Wno-format -THUMB_INTERWORK = -mthumb-interwork -CFLAGS = -g -mcpu=$(MCU) $(THUMB) $(THUMB_INTERWORK) $(WARNINGS) $(OPTIMIZE) -ASFLAGS = -g -mcpu=$(MCU) $(THUMB) $(THUMB_INTERWORK) -CPPFLAGS = $(INCLUDES) $(DEFINES) -MMD -LDSCRIPT = nxt.ld -LDFLAGS = -nostdlib -T $(LDSCRIPT) -Wl,--gc-sections -LDLIBS = -lc -lm -lgcc -lnosys - -ifeq ($(ARMDEBUG),y) -ASM_ARM_SOURCE += abort_handler.S undef_handler.S debug_hexutils.S \ - debug_stub.S debug_comm.S debug_opcodes.S \ - debug_runlooptasks.S -vpath %.S $(DBGDIR) -DEFINES += -DARMDEBUG -INCLUDES += -I../../armdebug/Debugger -endif - -CROSS_COMPILE = arm-none-eabi- -CC = $(CROSS_COMPILE)gcc -OBJDUMP = $(CROSS_COMPILE)objdump -OBJCOPY = $(CROSS_COMPILE)objcopy - -FWFLASH = fwflash - -ARM_OBJECTS = $(ARM_SOURCES:%.c=%.o) $(ASM_ARM_SOURCE:%.S=%.o) -THUMB_OBJECTS = $(THUMB_SOURCES:%.c=%.o) $(THUMB_ARM_SOURCE:%.S=%.o) -OBJECTS = $(ARM_OBJECTS) $(THUMB_OBJECTS) - -all: bin - -elf: $(TARGET).elf -bin: $(TARGET).bin -sym: $(TARGET).sym -lst: $(TARGET).lst - -$(TARGET).elf: THUMB = -mthumb -$(TARGET).elf: $(OBJECTS) $(LDSCRIPT) - $(LINK.c) $(OBJECTS) $(LOADLIBES) $(LDLIBS) -o $@ - -%.bin: %.elf - $(OBJCOPY) --pad-to=0x140000 --gap-fill=0xff -O binary $< $@ - -%.sym: %.elf - $(OBJDUMP) -h -t $< > $@ - -%.lst: %.elf - $(OBJDUMP) -S $< > $@ - -$(THUMB_OBJECTS): THUMB = -mthumb - --include $(OBJECTS:%.o=%.d) - -LAST_BUILD_DATE=none --include version.mak -ifneq ($(LAST_BUILD_DATE),$(BUILD_DATE)) -.PHONY: version.mak -version.mak: - echo "LAST_BUILD_DATE = $(BUILD_DATE)" > $@ -endif - -c_ui.o: version.mak - -program: $(TARGET).bin - $(FWFLASH) $(TARGET).bin - -clean: - rm -f $(TARGET).elf $(TARGET).bin $(TARGET).sym $(TARGET).lst \ - $(OBJECTS) $(OBJECTS:%.o=%.d) version.mak diff --git a/AT91SAM7S256/SAM7S256/gcc/lib/abort.c b/AT91SAM7S256/SAM7S256/gcc/lib/abort.c deleted file mode 100644 index 26d47e7..0000000 --- a/AT91SAM7S256/SAM7S256/gcc/lib/abort.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2011 Nicolas Schodet - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -/* Provide an abort function, could be used by various library function. */ - -void -abort (void) -{ - /* Wait for ever, nothing better to do. */ - while (1) - ; -} - diff --git a/AT91SAM7S256/SAM7S256/gcc/lib/errno.c b/AT91SAM7S256/SAM7S256/gcc/lib/errno.c deleted file mode 100644 index 3eb52ac..0000000 --- a/AT91SAM7S256/SAM7S256/gcc/lib/errno.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2010 Nicolas Schodet - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -/* This is needed for libm. Provide a non thread safe errno. */ - -static int __the_errno; - -int * -__errno (void) -{ - return &__the_errno; -} - diff --git a/AT91SAM7S256/SAM7S256/gcc/lib/sbrk.c b/AT91SAM7S256/SAM7S256/gcc/lib/sbrk.c deleted file mode 100644 index 317a94b..0000000 --- a/AT91SAM7S256/SAM7S256/gcc/lib/sbrk.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2010 Nicolas Schodet - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -/* The newlib sprintf use dynamic allocation for floating point. Therefore, - * the sbrk syscall should be provided. - * - * This works by taking memory above BSS and below stack. There is no - * collision detection as it whould not known what to do then. */ - -extern char _end; - -void * -_sbrk (int incr) -{ - static char *heap = 0; - char *base; - /* Initialise if first call. */ - if (heap == 0) - heap = &_end; - /* Increment and return old heap base. */ - base = heap; - heap += incr; - return base; -} - diff --git a/AT91SAM7S256/SAM7S256/gcc/lib/sscanf.c b/AT91SAM7S256/SAM7S256/gcc/lib/sscanf.c deleted file mode 100644 index a4f5e64..0000000 --- a/AT91SAM7S256/SAM7S256/gcc/lib/sscanf.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2010 Nicolas Schodet - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -/* NXT source code is using sscanf to parse a float. Newlib sscanf will pull - * too many code, so here is a stub which implement just what is used. */ -#include -#include -#include - -int -sscanf (const char *str, const char *fmt, ...) -{ - va_list ap; - float *f; - char *tailptr; - /* Only support use in NXT source code. */ - if (fmt[0] != '%' || fmt[1] != 'f' || fmt[2] != '\0') - return 0; - /* Retrieve float pointer. */ - va_start (ap, fmt); - f = va_arg (ap, float *); - va_end (ap); - /* Parse using the nice strtod. */ - *f = strtod (str, &tailptr); - if (str == tailptr) - return 0; - else - return 1; -} - diff --git a/AT91SAM7S256/SAM7S256/gcc/lib/strtod.c b/AT91SAM7S256/SAM7S256/gcc/lib/strtod.c deleted file mode 100644 index 49d02a2..0000000 --- a/AT91SAM7S256/SAM7S256/gcc/lib/strtod.c +++ /dev/null @@ -1,257 +0,0 @@ -/* - * strtod.c -- - * - * Source code for the "strtod" library procedure. - * - * Copyright (c) 1988-1993 The Regents of the University of California. - * Copyright (c) 1994 Sun Microsystems, Inc. - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies. The University of California - * makes no representations about the suitability of this - * software for any purpose. It is provided "as is" without - * express or implied warranty. - */ - -#include -#include -#include - -#ifndef TRUE -#define TRUE 1 -#define FALSE 0 -#endif -#ifndef NULL -#define NULL 0 -#endif - -static int maxExponent = 511; /* Largest possible base 10 exponent. Any - * exponent larger than this will already - * produce underflow or overflow, so there's - * no need to worry about additional digits. - */ -static double powersOf10[] = { /* Table giving binary powers of 10. Entry */ - 10., /* is 10^2^i. Used to convert decimal */ - 100., /* exponents into floating-point numbers. */ - 1.0e4, - 1.0e8, - 1.0e16, - 1.0e32, - 1.0e64, - 1.0e128, - 1.0e256 -}; - -/* - *---------------------------------------------------------------------- - * - * strtod -- - * - * This procedure converts a floating-point number from an ASCII - * decimal representation to internal double-precision format. - * - * Results: - * The return value is the double-precision floating-point - * representation of the characters in string. If endPtr isn't - * NULL, then *endPtr is filled in with the address of the - * next character after the last one that was part of the - * floating-point number. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -double -strtod(string, endPtr) - const char *string; /* A decimal ASCII floating-point number, - * optionally preceded by white space. - * Must have form "-I.FE-X", where I is the - * integer part of the mantissa, F is the - * fractional part of the mantissa, and X - * is the exponent. Either of the signs - * may be "+", "-", or omitted. Either I - * or F may be omitted, or both. The decimal - * point isn't necessary unless F is present. - * The "E" may actually be an "e". E and X - * may both be omitted (but not just one). - */ - char **endPtr; /* If non-NULL, store terminating character's - * address here. */ -{ - int sign, expSign = FALSE; - double fraction, dblExp, *d; - register const char *p; - register int c; - int exp = 0; /* Exponent read from "EX" field. */ - int fracExp = 0; /* Exponent that derives from the fractional - * part. Under normal circumstatnces, it is - * the negative of the number of digits in F. - * However, if I is very long, the last digits - * of I get dropped (otherwise a long I with a - * large negative exponent could cause an - * unnecessary overflow on I alone). In this - * case, fracExp is incremented one for each - * dropped digit. */ - int mantSize; /* Number of digits in mantissa. */ - int decPt; /* Number of mantissa digits BEFORE decimal - * point. */ - const char *pExp; /* Temporarily holds location of exponent - * in string. */ - - /* - * Strip off leading blanks and check for a sign. - */ - - p = string; - while (isspace(*p)) { - p += 1; - } - if (*p == '-') { - sign = TRUE; - p += 1; - } else { - if (*p == '+') { - p += 1; - } - sign = FALSE; - } - - /* - * Count the number of digits in the mantissa (including the decimal - * point), and also locate the decimal point. - */ - - decPt = -1; - for (mantSize = 0; ; mantSize += 1) - { - c = *p; - if (!isdigit(c)) { - if ((c != '.') || (decPt >= 0)) { - break; - } - decPt = mantSize; - } - p += 1; - } - - /* - * Now suck up the digits in the mantissa. Use two integers to - * collect 9 digits each (this is faster than using floating-point). - * If the mantissa has more than 18 digits, ignore the extras, since - * they can't affect the value anyway. - */ - - pExp = p; - p -= mantSize; - if (decPt < 0) { - decPt = mantSize; - } else { - mantSize -= 1; /* One of the digits was the point. */ - } - if (mantSize > 18) { - fracExp = decPt - 18; - mantSize = 18; - } else { - fracExp = decPt - mantSize; - } - if (mantSize == 0) { - fraction = 0.0; - p = string; - goto done; - } else { - int frac1, frac2; - frac1 = 0; - for ( ; mantSize > 9; mantSize -= 1) - { - c = *p; - p += 1; - if (c == '.') { - c = *p; - p += 1; - } - frac1 = 10*frac1 + (c - '0'); - } - frac2 = 0; - for (; mantSize > 0; mantSize -= 1) - { - c = *p; - p += 1; - if (c == '.') { - c = *p; - p += 1; - } - frac2 = 10*frac2 + (c - '0'); - } - fraction = (1.0e9 * frac1) + frac2; - } - - /* - * Skim off the exponent. - */ - - p = pExp; - if ((*p == 'E') || (*p == 'e')) { - p += 1; - if (*p == '-') { - expSign = TRUE; - p += 1; - } else { - if (*p == '+') { - p += 1; - } - expSign = FALSE; - } - while (isdigit(*p)) { - exp = exp * 10 + (*p - '0'); - p += 1; - } - } - if (expSign) { - exp = fracExp - exp; - } else { - exp = fracExp + exp; - } - - /* - * Generate a floating-point number that represents the exponent. - * Do this by processing the exponent one bit at a time to combine - * many powers of 2 of 10. Then combine the exponent with the - * fraction. - */ - - if (exp < 0) { - expSign = TRUE; - exp = -exp; - } else { - expSign = FALSE; - } - if (exp > maxExponent) { - exp = maxExponent; - errno = ERANGE; - } - dblExp = 1.0; - for (d = powersOf10; exp != 0; exp >>= 1, d += 1) { - if (exp & 01) { - dblExp *= *d; - } - } - if (expSign) { - fraction /= dblExp; - } else { - fraction *= dblExp; - } - -done: - if (endPtr != NULL) { - *endPtr = (char *) p; - } - - if (sign) { - return -fraction; - } - return fraction; -} diff --git a/AT91SAM7S256/SAM7S256/gcc/nxt.ld b/AT91SAM7S256/SAM7S256/gcc/nxt.ld deleted file mode 100644 index e54bc5d..0000000 --- a/AT91SAM7S256/SAM7S256/gcc/nxt.ld +++ /dev/null @@ -1,167 +0,0 @@ - -MEMORY -{ - CODE (rx) : ORIGIN = 0x00100000, LENGTH = 256k - DATA (rwx) : ORIGIN = 0x00200000, LENGTH = 64k -} - -__FIRST_IN_RAM = ORIGIN(DATA); -__TOP_STACK = ORIGIN(DATA) + LENGTH(DATA); - -/* Section Definitions */ - -SECTIONS -{ - /* first section is .text which is used for code */ - . = ORIGIN(CODE); - - .text : - { - KEEP(*(.vectorg)) - . = ALIGN(4); - KEEP(*(.init)) - *(.text .text.*) /* remaining code */ - *(.gnu.linkonce.t.*) - *(.glue_7) - *(.glue_7t) - *(.gcc_except_table) - *(.rodata) /* read-only data (constants) */ - *(.rodata.*) - *(.gnu.linkonce.r.*) - . = ALIGN(4); - } >CODE - - . = ALIGN(4); - - /* .ctors .dtors are used for c++ constructors/destructors */ - - .ctors : - { - PROVIDE(__ctors_start__ = .); - KEEP(*(SORT(.ctors.*))) - KEEP(*(.ctors)) - PROVIDE(__ctors_end__ = .); - } >CODE - - .dtors : - { - PROVIDE(__dtors_start__ = .); - KEEP(*(SORT(.dtors.*))) - KEEP(*(.dtors)) - PROVIDE(__dtors_end__ = .); - } >CODE - - __exidx_start = . ; - .ARM.exidx : - { - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - } >CODE - __exidx_end = . ; - - . = ALIGN(4); - - _etext = . ; - PROVIDE (etext = .); - - /* .data section which is used for initialized data */ - .data : AT (_etext) - { - _data = . ; - KEEP(*(.vectmapped)) - . = ALIGN(4); - *(.fastrun .fastrun.*) - . = ALIGN(4); - SORT(CONSTRUCTORS) - . = ALIGN(4); - *(.data) - *(.data.*) - *(.gnu.linkonce.d.*) - . = ALIGN(4); - } >DATA - - . = ALIGN(4); - - _edata = . ; - PROVIDE (edata = .); - - __STARTOFUSERFLASH_FROM_LINKER = - ALIGN (LOADADDR (.data) + SIZEOF (.data), 0x100); - - /* - * The various debugger stacks. - */ - .stack : ALIGN(8) { - /* abort stack */ - __abort_stack_bottom__ = . ; - KEEP(*(.stack.abort)) - __abort_stack__ = . ; - __abort_stack_top__ = . ; - - /* debugger state */ - __debugger_stack_bottom__ = . ; - KEEP(*(.stack.debugger)) - __debugger_stack__ = . ; - __debugger_stack_top__ = . ; - - /* breakpoints */ - __breakpoints_start__ = . ; - KEEP(*(.breakpoints)) - __breakpoints_end__ = . ; - } > DATA - - __breakpoints_num__ = (__breakpoints_end__ - __breakpoints_start__) / 8; - - /* .bss section which is used for uninitialized data */ - .bss (NOLOAD) : - { - __bss_start = . ; - __bss_start__ = . ; - *(.bss) - *(.bss.*) - *(.gnu.linkonce.b.*) - *(COMMON) - . = ALIGN(4); - } >DATA - - . = ALIGN(4); - - __bss_end__ = . ; - - _end = .; - PROVIDE (end = .); - - /* 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) } - -} -- cgit v1.2.3