Removing more trailing whitespace
This commit is contained in:
parent
1a552bd8cd
commit
72a9bdf3ac
|
@ -24,7 +24,7 @@ below:
|
|||
instruction set simulators vary
|
||||
|
||||
sims/z80sim:
|
||||
You are well comecom to use the source files provided in
|
||||
You are well comecom to use the source files provided in
|
||||
this directory for any purpose. However, the core of the Z80
|
||||
emulation is based on a proprietary-but-free-to-use
|
||||
instruction set emulator. That emulation is not included
|
||||
|
|
|
@ -359,7 +359,7 @@ config BR2_TOPDIR_SUFFIX
|
|||
Add a custom string to the end of the build directories.
|
||||
|
||||
build_ARCH -> build_ARCH_[SUFFIX]
|
||||
toolchain_build_ARCH -> toolchain_build_ARCH_[SUFFIX]
|
||||
toolchain_build_ARCH -> toolchain_build_ARCH_[SUFFIX]
|
||||
|
||||
config BR2_GNU_BUILD_SUFFIX
|
||||
string "GNU build hostname suffix"
|
||||
|
|
|
@ -43,8 +43,8 @@ can be used to build the following NuttX-compatible toolchains:
|
|||
o H8/300 toolchain (not currently used in any NuttX
|
||||
configuration).
|
||||
|
||||
o i486-elf toochain. Why would you want such a thing? On Linux, of
|
||||
course, such a thing is not needed because you can use the installed GCC
|
||||
o i486-elf toochain. Why would you want such a thing? On Linux, of
|
||||
course, such a thing is not needed because you can use the installed GCC
|
||||
to build i486 ELF binaries. But that will not work under Cygwin! The
|
||||
Cygwin toolchain (and probably MinGW), build DOS MZ format executables
|
||||
(i.e., .exe files). That is probably not usable for most NuttX targets.
|
||||
|
|
|
@ -8,7 +8,7 @@ CONTENTS
|
|||
o GENERAL BUILD STEPS
|
||||
o FAQ
|
||||
o Cygwin GCC BUILD NOTES
|
||||
o Building GDB Under Cygwin
|
||||
o Building GDB Under Cygwin
|
||||
|
||||
AVAILABLE CONFIGURATIONS
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -20,7 +20,7 @@ arm7tdmi-defconfig-4.2.4
|
|||
arm920t-defconfig-4.2.4
|
||||
arm926t-defconfig-4.2.4
|
||||
Builds an OABI ARM toolchain using gcc 4.2.4. This configuration
|
||||
builds both gcc and g++. There are three versions: one for
|
||||
builds both gcc and g++. There are three versions: one for
|
||||
arm7tdmi (armv4t), arm920t (armv4t) and arm926t (arv5t) because
|
||||
of differences in the way that soft floating is handled in between
|
||||
the armv4t and arm5t architectures.
|
||||
|
@ -132,7 +132,7 @@ m68hc12-config-3.4.6
|
|||
m68hc12-config-4.3.3
|
||||
Builds an hc11/hc12 toolchain using gcc 4.3.3.NOT RECOMMENDED for hcs12;
|
||||
Use m9s12x_config_3.3.6
|
||||
|
||||
|
||||
This configuration fails to build with the following error:
|
||||
|
||||
make[3]: Entering directory `blabla/buildroot/toolchain_build_m68hc12/gcc-4.3.3-build/m68hc12-elf/libgcc'
|
||||
|
@ -172,7 +172,7 @@ GENERAL BUILD STEPS
|
|||
They may be located in separate packages."
|
||||
|
||||
Version 4.5.x and beyond also require the MPC package.
|
||||
|
||||
|
||||
You should try your package manager for whatever Linux version you are using
|
||||
first. The header files are normally included in versions of the packages that
|
||||
have "-devel" in the package name. So you need mpfr-devl and gmp-devel (and
|
||||
|
@ -371,4 +371,4 @@ Building GDB Under Cygwin
|
|||
directory if it is needed:
|
||||
|
||||
cp configs/gdb-1_8-cygwin-1_7.patch toolchain/gdb/6.8/.
|
||||
|
||||
|
||||
|
|
|
@ -130,7 +130,7 @@ module state. Dependency expressions have the following syntax:
|
|||
<expr> '&&' <expr> (6)
|
||||
<expr> '||' <expr> (7)
|
||||
|
||||
Expressions are listed in decreasing order of precedence.
|
||||
Expressions are listed in decreasing order of precedence.
|
||||
|
||||
(1) Convert the symbol into an expression. Boolean and tristate symbols
|
||||
are simply converted into the respective expression values. All
|
||||
|
|
|
@ -42,7 +42,7 @@ typedef uint32_t flex_uint32_t;
|
|||
typedef signed char flex_int8_t;
|
||||
typedef short int flex_int16_t;
|
||||
typedef int flex_int32_t;
|
||||
typedef unsigned char flex_uint8_t;
|
||||
typedef unsigned char flex_uint8_t;
|
||||
typedef unsigned short int flex_uint16_t;
|
||||
typedef unsigned int flex_uint32_t;
|
||||
#endif /* ! C99 */
|
||||
|
@ -148,7 +148,7 @@ extern FILE *zconfin, *zconfout;
|
|||
#define EOB_ACT_LAST_MATCH 2
|
||||
|
||||
#define YY_LESS_LINENO(n)
|
||||
|
||||
|
||||
/* Return all but the first "n" matched characters back to the input stream. */
|
||||
#define yyless(n) \
|
||||
do \
|
||||
|
@ -215,7 +215,7 @@ struct yy_buffer_state
|
|||
|
||||
int yy_bs_lineno; /**< The line count. */
|
||||
int yy_bs_column; /**< The column count. */
|
||||
|
||||
|
||||
/* Whether to try to fill the input buffer when we reach the
|
||||
* end of it.
|
||||
*/
|
||||
|
@ -2089,7 +2089,7 @@ extern int zconfwrap (void );
|
|||
#endif
|
||||
|
||||
static void yyunput (int c,char *buf_ptr );
|
||||
|
||||
|
||||
#ifndef yytext_ptr
|
||||
static void yy_flex_strncpy (char *,yyconst char *,int );
|
||||
#endif
|
||||
|
@ -2194,7 +2194,7 @@ YY_DECL
|
|||
register yy_state_type yy_current_state;
|
||||
register char *yy_cp, *yy_bp;
|
||||
register int yy_act;
|
||||
|
||||
|
||||
int str = 0;
|
||||
int ts, i;
|
||||
|
||||
|
@ -2899,7 +2899,7 @@ static int yy_get_next_buffer (void)
|
|||
{
|
||||
register yy_state_type yy_current_state;
|
||||
register char *yy_cp;
|
||||
|
||||
|
||||
yy_current_state = (yy_start);
|
||||
|
||||
for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
|
||||
|
@ -2918,7 +2918,7 @@ static int yy_get_next_buffer (void)
|
|||
static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
|
||||
{
|
||||
register int yy_is_jam;
|
||||
|
||||
|
||||
yy_current_state = yy_nxt[yy_current_state][1];
|
||||
yy_is_jam = (yy_current_state <= 0);
|
||||
|
||||
|
@ -2928,7 +2928,7 @@ static int yy_get_next_buffer (void)
|
|||
static void yyunput (int c, register char * yy_bp )
|
||||
{
|
||||
register char *yy_cp;
|
||||
|
||||
|
||||
yy_cp = (yy_c_buf_p);
|
||||
|
||||
/* undo effects of setting up zconftext */
|
||||
|
@ -2971,7 +2971,7 @@ static int yy_get_next_buffer (void)
|
|||
|
||||
{
|
||||
int c;
|
||||
|
||||
|
||||
*(yy_c_buf_p) = (yy_hold_char);
|
||||
|
||||
if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
|
||||
|
@ -3038,12 +3038,12 @@ static int yy_get_next_buffer (void)
|
|||
|
||||
/** Immediately switch to a different input stream.
|
||||
* @param input_file A readable stream.
|
||||
*
|
||||
*
|
||||
* @note This function does not reset the start condition to @c INITIAL .
|
||||
*/
|
||||
void zconfrestart (FILE * input_file )
|
||||
{
|
||||
|
||||
|
||||
if ( ! YY_CURRENT_BUFFER ){
|
||||
zconfensure_buffer_stack ();
|
||||
YY_CURRENT_BUFFER_LVALUE =
|
||||
|
@ -3056,11 +3056,11 @@ static int yy_get_next_buffer (void)
|
|||
|
||||
/** Switch to a different input buffer.
|
||||
* @param new_buffer The new input buffer.
|
||||
*
|
||||
*
|
||||
*/
|
||||
void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer )
|
||||
{
|
||||
|
||||
|
||||
/* TODO. We should be able to replace this entire function body
|
||||
* with
|
||||
* zconfpop_buffer_state();
|
||||
|
@ -3100,13 +3100,13 @@ static void zconf_load_buffer_state (void)
|
|||
/** Allocate and initialize an input buffer state.
|
||||
* @param file A readable stream.
|
||||
* @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
|
||||
*
|
||||
*
|
||||
* @return the allocated buffer state.
|
||||
*/
|
||||
YY_BUFFER_STATE zconf_create_buffer (FILE * file, int size )
|
||||
{
|
||||
YY_BUFFER_STATE b;
|
||||
|
||||
|
||||
b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) );
|
||||
if ( ! b )
|
||||
YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
|
||||
|
@ -3129,11 +3129,11 @@ static void zconf_load_buffer_state (void)
|
|||
|
||||
/** Destroy the buffer.
|
||||
* @param b a buffer created with zconf_create_buffer()
|
||||
*
|
||||
*
|
||||
*/
|
||||
void zconf_delete_buffer (YY_BUFFER_STATE b )
|
||||
{
|
||||
|
||||
|
||||
if ( ! b )
|
||||
return;
|
||||
|
||||
|
@ -3154,7 +3154,7 @@ static void zconf_load_buffer_state (void)
|
|||
|
||||
{
|
||||
int oerrno = errno;
|
||||
|
||||
|
||||
zconf_flush_buffer(b );
|
||||
|
||||
b->yy_input_file = file;
|
||||
|
@ -3170,13 +3170,13 @@ static void zconf_load_buffer_state (void)
|
|||
}
|
||||
|
||||
b->yy_is_interactive = 0;
|
||||
|
||||
|
||||
errno = oerrno;
|
||||
}
|
||||
|
||||
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
|
||||
* @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
|
||||
*
|
||||
*
|
||||
*/
|
||||
void zconf_flush_buffer (YY_BUFFER_STATE b )
|
||||
{
|
||||
|
@ -3205,7 +3205,7 @@ static void zconf_load_buffer_state (void)
|
|||
* the current state. This function will allocate the stack
|
||||
* if necessary.
|
||||
* @param new_buffer The new state.
|
||||
*
|
||||
*
|
||||
*/
|
||||
void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer )
|
||||
{
|
||||
|
@ -3235,7 +3235,7 @@ void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer )
|
|||
|
||||
/** Removes and deletes the top of the stack, if present.
|
||||
* The next element becomes the new top.
|
||||
*
|
||||
*
|
||||
*/
|
||||
void zconfpop_buffer_state (void)
|
||||
{
|
||||
|
@ -3259,7 +3259,7 @@ void zconfpop_buffer_state (void)
|
|||
static void zconfensure_buffer_stack (void)
|
||||
{
|
||||
int num_to_alloc;
|
||||
|
||||
|
||||
if (!(yy_buffer_stack)) {
|
||||
|
||||
/* First allocation is just for 2 elements, since we don't know if this
|
||||
|
@ -3298,13 +3298,13 @@ static void zconfensure_buffer_stack (void)
|
|||
/** Setup the input buffer state to scan directly from a user-specified character buffer.
|
||||
* @param base the character buffer
|
||||
* @param size the size in bytes of the character buffer
|
||||
*
|
||||
* @return the newly allocated buffer state object.
|
||||
*
|
||||
* @return the newly allocated buffer state object.
|
||||
*/
|
||||
YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
|
||||
{
|
||||
YY_BUFFER_STATE b;
|
||||
|
||||
|
||||
if ( size < 2 ||
|
||||
base[size-2] != YY_END_OF_BUFFER_CHAR ||
|
||||
base[size-1] != YY_END_OF_BUFFER_CHAR )
|
||||
|
@ -3333,14 +3333,14 @@ YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
|
|||
/** Setup the input buffer state to scan a string. The next call to zconflex() will
|
||||
* scan from a @e copy of @a str.
|
||||
* @param str a NUL-terminated string to scan
|
||||
*
|
||||
*
|
||||
* @return the newly allocated buffer state object.
|
||||
* @note If you want to scan bytes that may contain NUL values, then use
|
||||
* zconf_scan_bytes() instead.
|
||||
*/
|
||||
YY_BUFFER_STATE zconf_scan_string (yyconst char * str )
|
||||
{
|
||||
|
||||
|
||||
return zconf_scan_bytes(str,strlen(str) );
|
||||
}
|
||||
|
||||
|
@ -3348,7 +3348,7 @@ YY_BUFFER_STATE zconf_scan_string (yyconst char * str )
|
|||
* scan from a @e copy of @a bytes.
|
||||
* @param bytes the byte buffer to scan
|
||||
* @param len the number of bytes in the buffer pointed to by @a bytes.
|
||||
*
|
||||
*
|
||||
* @return the newly allocated buffer state object.
|
||||
*/
|
||||
YY_BUFFER_STATE zconf_scan_bytes (yyconst char * bytes, int len )
|
||||
|
@ -3357,7 +3357,7 @@ YY_BUFFER_STATE zconf_scan_bytes (yyconst char * bytes, int len )
|
|||
char *buf;
|
||||
yy_size_t n;
|
||||
int i;
|
||||
|
||||
|
||||
/* Get memory for full buffer, including space for trailing EOB's. */
|
||||
n = len + 2;
|
||||
buf = (char *) zconfalloc(n );
|
||||
|
@ -3411,16 +3411,16 @@ static void yy_fatal_error (yyconst char* msg )
|
|||
/* Accessor methods (get/set functions) to struct members. */
|
||||
|
||||
/** Get the current line number.
|
||||
*
|
||||
*
|
||||
*/
|
||||
int zconfget_lineno (void)
|
||||
{
|
||||
|
||||
|
||||
return zconflineno;
|
||||
}
|
||||
|
||||
/** Get the input stream.
|
||||
*
|
||||
*
|
||||
*/
|
||||
FILE *zconfget_in (void)
|
||||
{
|
||||
|
@ -3428,7 +3428,7 @@ FILE *zconfget_in (void)
|
|||
}
|
||||
|
||||
/** Get the output stream.
|
||||
*
|
||||
*
|
||||
*/
|
||||
FILE *zconfget_out (void)
|
||||
{
|
||||
|
@ -3436,7 +3436,7 @@ FILE *zconfget_out (void)
|
|||
}
|
||||
|
||||
/** Get the length of the current token.
|
||||
*
|
||||
*
|
||||
*/
|
||||
int zconfget_leng (void)
|
||||
{
|
||||
|
@ -3444,7 +3444,7 @@ int zconfget_leng (void)
|
|||
}
|
||||
|
||||
/** Get the current token.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
char *zconfget_text (void)
|
||||
|
@ -3454,18 +3454,18 @@ char *zconfget_text (void)
|
|||
|
||||
/** Set the current line number.
|
||||
* @param line_number
|
||||
*
|
||||
*
|
||||
*/
|
||||
void zconfset_lineno (int line_number )
|
||||
{
|
||||
|
||||
|
||||
zconflineno = line_number;
|
||||
}
|
||||
|
||||
/** Set the input stream. This does not discard the current
|
||||
* input buffer.
|
||||
* @param in_str A readable stream.
|
||||
*
|
||||
*
|
||||
* @see zconf_switch_to_buffer
|
||||
*/
|
||||
void zconfset_in (FILE * in_str )
|
||||
|
@ -3491,7 +3491,7 @@ void zconfset_debug (int bdebug )
|
|||
/* zconflex_destroy is for both reentrant and non-reentrant scanners. */
|
||||
int zconflex_destroy (void)
|
||||
{
|
||||
|
||||
|
||||
/* Pop the buffer stack, destroying each element. */
|
||||
while(YY_CURRENT_BUFFER){
|
||||
zconf_delete_buffer(YY_CURRENT_BUFFER );
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
This is NOT the official version of dialog. This version has been
|
||||
significantly modified from the original. It is for use by the Linux
|
||||
kernel configuration script. Please do not bother Savio Lam with
|
||||
kernel configuration script. Please do not bother Savio Lam with
|
||||
questions about this program.
|
||||
|
|
|
@ -197,7 +197,7 @@ dialog_checklist (const char *title, const char *prompt, int height, int width,
|
|||
|
||||
/* Find length of longest item in order to center checklist */
|
||||
check_x = 0;
|
||||
for (i = 0; i < item_no; i++)
|
||||
for (i = 0; i < item_no; i++)
|
||||
check_x = MAX (check_x, + strlen (items[i]->name) + 4);
|
||||
|
||||
check_x = (list_width - check_x) / 2;
|
||||
|
@ -231,7 +231,7 @@ dialog_checklist (const char *title, const char *prompt, int height, int width,
|
|||
break;
|
||||
|
||||
|
||||
if ( i < max_choice || key == KEY_UP || key == KEY_DOWN ||
|
||||
if ( i < max_choice || key == KEY_UP || key == KEY_DOWN ||
|
||||
key == '+' || key == '-' ) {
|
||||
if (key == KEY_UP || key == '-') {
|
||||
if (!choice) {
|
||||
|
@ -342,7 +342,7 @@ dialog_checklist (const char *title, const char *prompt, int height, int width,
|
|||
}
|
||||
wnoutrefresh (list);
|
||||
wrefresh (dialog);
|
||||
|
||||
|
||||
for (i = 0; i < item_no; i++) {
|
||||
items[i]->selected = status[i];
|
||||
}
|
||||
|
@ -364,7 +364,7 @@ dialog_checklist (const char *title, const char *prompt, int height, int width,
|
|||
/* Now, update everything... */
|
||||
doupdate ();
|
||||
}
|
||||
|
||||
|
||||
|
||||
delwin (dialog);
|
||||
free (status);
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
#define ACS_DARROW 'v'
|
||||
#endif
|
||||
|
||||
/*
|
||||
/*
|
||||
* Attribute names
|
||||
*/
|
||||
#define screen_attr attributes[0]
|
||||
|
@ -165,7 +165,7 @@ int dialog_msgbox (const char *title, const char *prompt, int height,
|
|||
int width, int pause);
|
||||
int dialog_textbox (const char *title, const char *file, int height, int width);
|
||||
int dialog_menu (const char *title, const char *prompt, int height, int width,
|
||||
int menu_height, const char *choice, int item_no,
|
||||
int menu_height, const char *choice, int item_no,
|
||||
struct dialog_list_item ** items);
|
||||
int dialog_checklist (const char *title, const char *prompt, int height,
|
||||
int width, int list_height, int item_no,
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
*
|
||||
* *) A bugfix for the Page-Down problem
|
||||
*
|
||||
* *) Formerly when I used Page Down and Page Up, the cursor would be set
|
||||
* *) Formerly when I used Page Down and Page Up, the cursor would be set
|
||||
* to the first position in the menu box. Now lxdialog is a bit
|
||||
* smarter and works more like other menu systems (just have a look at
|
||||
* it).
|
||||
|
@ -225,7 +225,7 @@ dialog_menu (const char *title, const char *prompt, int height, int width,
|
|||
|
||||
/*
|
||||
* Find length of longest item in order to center menu.
|
||||
* Set 'choice' to default item.
|
||||
* Set 'choice' to default item.
|
||||
*/
|
||||
item_x = 0;
|
||||
for (i = 0; i < item_no; i++) {
|
||||
|
@ -294,7 +294,7 @@ dialog_menu (const char *title, const char *prompt, int height, int width,
|
|||
}
|
||||
}
|
||||
|
||||
if (i < max_choice ||
|
||||
if (i < max_choice ||
|
||||
key == KEY_UP || key == KEY_DOWN ||
|
||||
key == '-' || key == '+' ||
|
||||
key == KEY_PPAGE || key == KEY_NPAGE) {
|
||||
|
|
|
@ -29,7 +29,7 @@ const char *backtitle = NULL;
|
|||
|
||||
const char *dialog_result;
|
||||
|
||||
/*
|
||||
/*
|
||||
* Attribute values, default is for mono display
|
||||
*/
|
||||
chtype attributes[] =
|
||||
|
@ -350,7 +350,7 @@ first_alpha(const char *string, const char *exempt)
|
|||
if (strchr("<[(", c)) ++in_paren;
|
||||
if (strchr(">])", c) && in_paren > 0) --in_paren;
|
||||
|
||||
if ((! in_paren) && isalpha(c) &&
|
||||
if ((! in_paren) && isalpha(c) &&
|
||||
strchr(exempt, c) == 0)
|
||||
return i;
|
||||
}
|
||||
|
|
|
@ -448,21 +448,21 @@ static const unsigned short yyrline[] =
|
|||
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
|
||||
static const char *const yytname[] =
|
||||
{
|
||||
"$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU",
|
||||
"T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
|
||||
"T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",
|
||||
"T_REQUIRES", "T_OPTIONAL", "T_PROMPT", "T_DEFAULT", "T_TRISTATE",
|
||||
"T_DEF_TRISTATE", "T_BOOLEAN", "T_DEF_BOOLEAN", "T_STRING", "T_INT",
|
||||
"T_HEX", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", "T_EOF", "T_EOL",
|
||||
"T_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_SELECT", "T_RANGE", "T_OR",
|
||||
"T_AND", "T_EQUAL", "T_NOT", "$accept", "input", "block",
|
||||
"common_block", "config_entry_start", "config_stmt",
|
||||
"menuconfig_entry_start", "menuconfig_stmt", "config_option_list",
|
||||
"config_option", "choice", "choice_entry", "choice_end", "choice_stmt",
|
||||
"choice_option_list", "choice_option", "choice_block", "if", "if_end",
|
||||
"if_stmt", "if_block", "menu", "menu_entry", "menu_end", "menu_stmt",
|
||||
"menu_block", "source", "source_stmt", "comment", "comment_stmt",
|
||||
"help_start", "help", "depends_list", "depends", "prompt_stmt_opt",
|
||||
"$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU",
|
||||
"T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
|
||||
"T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",
|
||||
"T_REQUIRES", "T_OPTIONAL", "T_PROMPT", "T_DEFAULT", "T_TRISTATE",
|
||||
"T_DEF_TRISTATE", "T_BOOLEAN", "T_DEF_BOOLEAN", "T_STRING", "T_INT",
|
||||
"T_HEX", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", "T_EOF", "T_EOL",
|
||||
"T_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_SELECT", "T_RANGE", "T_OR",
|
||||
"T_AND", "T_EQUAL", "T_NOT", "$accept", "input", "block",
|
||||
"common_block", "config_entry_start", "config_stmt",
|
||||
"menuconfig_entry_start", "menuconfig_stmt", "config_option_list",
|
||||
"config_option", "choice", "choice_entry", "choice_end", "choice_stmt",
|
||||
"choice_option_list", "choice_option", "choice_block", "if", "if_end",
|
||||
"if_stmt", "if_block", "menu", "menu_entry", "menu_end", "menu_stmt",
|
||||
"menu_block", "source", "source_stmt", "comment", "comment_stmt",
|
||||
"help_start", "help", "depends_list", "depends", "prompt_stmt_opt",
|
||||
"prompt", "end", "nl_or_eof", "if_expr", "expr", "symbol", 0
|
||||
};
|
||||
#endif
|
||||
|
@ -1029,7 +1029,7 @@ yyparse ()
|
|||
#endif
|
||||
#endif
|
||||
{
|
||||
|
||||
|
||||
register int yystate;
|
||||
register int yyn;
|
||||
int yyresult;
|
||||
|
|
|
@ -4,7 +4,7 @@ all:
|
|||
@echo "Type 'make upload' to upload to the GNU FTP server."
|
||||
|
||||
upload:
|
||||
gpg --detach-sign config.guess
|
||||
gpg --detach-sign config.guess
|
||||
gpg --detach-sign config.sub
|
||||
echo "directory: config" | gpg --clearsign > config.guess.directive.asc
|
||||
cp config.guess.directive.asc config.sub.directive.asc
|
||||
|
|
|
@ -8,9 +8,9 @@ To use, just add this to your unpack rule in the package.mk:
|
|||
$(CONFIG_UPDATE) $(PACKAGE_DIR)/
|
||||
|
||||
--- UPDATE ---
|
||||
This is a CVS checkout of the config project, so just run `cvs up`
|
||||
This is a CVS checkout of the config project, so just run `cvs up`
|
||||
to get the latest config.sub / config.guess files.
|
||||
|
||||
A few local customizations are used to support uClibc so you may
|
||||
have to make sure they're still needed. The patches are broken
|
||||
have to make sure they're still needed. The patches are broken
|
||||
out in the patches/ dir to keep things simple.
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
# See README.buildroot
|
||||
|
||||
CONFIG_UPDATE = cp -f package/gnuconfig/config.sub package/gnuconfig/config.guess
|
||||
CONFIG_UPDATE = cp -f package/gnuconfig/config.sub package/gnuconfig/config.guess
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#
|
||||
######################################################################
|
||||
|
||||
dependencies:
|
||||
dependencies:
|
||||
@HOSTCC="$(firstword $(HOSTCC))" MAKE="$(MAKE)" $(TOPDIR)/toolchain/dependencies/dependencies.sh
|
||||
|
||||
dependencies-source:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#
|
||||
#
|
||||
|
||||
GCC_VERSION:=$(strip $(subst ",, $(BR2_GCC_VERSION)))
|
||||
#"))
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
|
||||
CFLAGS += -Wall -I. -I$(BINUTILS_DIR1)/bfd -I$(BINUTILS_DIR)/include
|
||||
LDFLAGS += -L$(BINUTILS_DIR1)/bfd -L$(BINUTILS_DIR1)/libiberty
|
||||
LIBS = -lbfd -liberty -lz -lc
|
||||
LIBS = -lbfd -liberty -lz -lc
|
||||
|
||||
LDNXFLAT_OBJS = ldnxflat.o
|
||||
MKNXFLAT_OBJS = mknxflat.o
|
||||
|
|
|
@ -81,7 +81,7 @@ static unsigned int regname_selected = 1;
|
|||
static char * arm_fp_const[] =
|
||||
{"0.0", "1.0", "2.0", "3.0", "4.0", "5.0", "0.5", "10.0"};
|
||||
|
||||
static char * arm_shift[] =
|
||||
static char * arm_shift[] =
|
||||
{"lsl", "lsr", "asr", "ror"};
|
||||
|
||||
static struct arm_opcode arm_opcodes[] =
|
||||
|
@ -105,7 +105,7 @@ static struct arm_opcode arm_opcodes[] =
|
|||
{0x0c400000, 0x0ff00fff, "mar%c\tacc0, %12-15r, %16-19r"},
|
||||
{0x0c500000, 0x0ff00fff, "mra%c\t%12-15r, %16-19r, acc0"},
|
||||
{0xf450f000, 0xfc70f000, "pld\t%a"},
|
||||
|
||||
|
||||
/* V5 Instructions. */
|
||||
{0xe1200070, 0xfff000f0, "bkpt\t0x%16-19X%12-15X%8-11X%0-3X"},
|
||||
{0xfa000000, 0xfe000000, "blx\t%B"},
|
||||
|
@ -117,7 +117,7 @@ static struct arm_opcode arm_opcodes[] =
|
|||
{0xfe000010, 0xff100010, "mcr2\t%8-11d, %21-23d, %12-15r, cr%16-19d, cr%0-3d, {%5-7d}"},
|
||||
{0xfe100010, 0xff100010, "mrc2\t%8-11d, %21-23d, %12-15r, cr%16-19d, cr%0-3d, {%5-7d}"},
|
||||
|
||||
/* V5E "El Segundo" Instructions. */
|
||||
/* V5E "El Segundo" Instructions. */
|
||||
{0x000000d0, 0x0e1000f0, "ldr%cd\t%12-15r, %s"},
|
||||
{0x000000f0, 0x0e1000f0, "str%cd\t%12-15r, %s"},
|
||||
{0x01000080, 0x0ff000f0, "smlabb%c\t%16-19r, %0-3r, %8-11r, %12-15r"},
|
||||
|
@ -304,7 +304,7 @@ static struct arm_opcode arm_opcodes[] =
|
|||
{0x0d100400, 0x0f500f00, "cfldrs%c\tmvf%12-15d, %A"},
|
||||
{0x0c100400, 0x0f500f00, "cfldrs%c\tmvf%12-15d, %A"},
|
||||
{0x0d500400, 0x0f500f00, "cfldrd%c\tmvd%12-15d, %A"},
|
||||
{0x0c500400, 0x0f500f00, "cfldrd%c\tmvd%12-15d, %A"},
|
||||
{0x0c500400, 0x0f500f00, "cfldrd%c\tmvd%12-15d, %A"},
|
||||
{0x0d100500, 0x0f500f00, "cfldr32%c\tmvfx%12-15d, %A"},
|
||||
{0x0c100500, 0x0f500f00, "cfldr32%c\tmvfx%12-15d, %A"},
|
||||
{0x0d500500, 0x0f500f00, "cfldr64%c\tmvdx%12-15d, %A"},
|
||||
|
@ -406,14 +406,14 @@ static inline void print_address(FILE *stream, u_int32_t offset)
|
|||
static void arm_decode_shift(u_int32_t given, FILE *stream)
|
||||
{
|
||||
fprintf(stream, "%s", arm_regnames[given & 0xf]);
|
||||
|
||||
|
||||
if ((given & 0xff0) != 0)
|
||||
{
|
||||
if ((given & 0x10) == 0)
|
||||
{
|
||||
int amount = (given & 0xf80) >> 7;
|
||||
int shift = (given & 0x60) >> 5;
|
||||
|
||||
|
||||
if (amount == 0)
|
||||
{
|
||||
if (shift == 3)
|
||||
|
@ -421,10 +421,10 @@ static void arm_decode_shift(u_int32_t given, FILE *stream)
|
|||
fprintf(stream, ", rrx");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
amount = 32;
|
||||
}
|
||||
|
||||
|
||||
fprintf(stream, ", %s #%d", arm_shift[shift], amount);
|
||||
}
|
||||
else
|
||||
|
@ -442,7 +442,7 @@ int print_insn_arm(u_int32_t pc, FILE *stream, u_int32_t given)
|
|||
if ((given & insn->mask) == insn->value)
|
||||
{
|
||||
char * c;
|
||||
|
||||
|
||||
for (c = insn->assembler; *c; c++)
|
||||
{
|
||||
if (*c == '%')
|
||||
|
@ -458,14 +458,14 @@ int print_insn_arm(u_int32_t pc, FILE *stream, u_int32_t given)
|
|||
&& ((given & 0x02000000) == 0))
|
||||
{
|
||||
int offset = given & 0xfff;
|
||||
|
||||
|
||||
fprintf(stream, "[pc");
|
||||
|
||||
|
||||
if (given & 0x01000000)
|
||||
{
|
||||
if ((given & 0x00800000) == 0)
|
||||
offset = - offset;
|
||||
|
||||
|
||||
/* Pre-indexed. */
|
||||
fprintf(stream, ", #%d]", offset);
|
||||
|
||||
|
@ -486,13 +486,13 @@ int print_insn_arm(u_int32_t pc, FILE *stream, u_int32_t given)
|
|||
/* ie ignore the offset. */
|
||||
offset = pc + 8;
|
||||
}
|
||||
|
||||
|
||||
fprintf(stream, "\t; ");
|
||||
print_address(stream, offset);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stream, "[%s",
|
||||
fprintf(stream, "[%s",
|
||||
arm_regnames[(given >> 16) & 0xf]);
|
||||
if ((given & 0x01000000) != 0)
|
||||
{
|
||||
|
@ -512,7 +512,7 @@ int print_insn_arm(u_int32_t pc, FILE *stream, u_int32_t given)
|
|||
arm_decode_shift (given, stream);
|
||||
}
|
||||
|
||||
fprintf(stream, "]%s",
|
||||
fprintf(stream, "]%s",
|
||||
((given & 0x00200000) != 0) ? "!" : "");
|
||||
}
|
||||
else
|
||||
|
@ -524,13 +524,13 @@ int print_insn_arm(u_int32_t pc, FILE *stream, u_int32_t given)
|
|||
fprintf(stream, "], %s#%d",
|
||||
(((given & 0x00800000) == 0)
|
||||
? "-" : ""), offset);
|
||||
else
|
||||
else
|
||||
fprintf(stream, "]");
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stream, "], %s",
|
||||
(((given & 0x00800000) == 0)
|
||||
(((given & 0x00800000) == 0)
|
||||
? "-" : ""));
|
||||
arm_decode_shift (given, stream);
|
||||
}
|
||||
|
@ -543,17 +543,17 @@ int print_insn_arm(u_int32_t pc, FILE *stream, u_int32_t given)
|
|||
{
|
||||
/* PC relative with immediate offset. */
|
||||
int offset = ((given & 0xf00) >> 4) | (given & 0xf);
|
||||
|
||||
|
||||
if ((given & 0x00800000) == 0)
|
||||
offset = -offset;
|
||||
|
||||
|
||||
fprintf(stream, "[pc, #%d]\t; ", offset);
|
||||
|
||||
|
||||
print_address(stream, offset + pc + 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stream, "[%s",
|
||||
fprintf(stream, "[%s",
|
||||
arm_regnames[(given >> 16) & 0xf]);
|
||||
if ((given & 0x01000000) != 0)
|
||||
{
|
||||
|
@ -576,7 +576,7 @@ int print_insn_arm(u_int32_t pc, FILE *stream, u_int32_t given)
|
|||
arm_regnames[given & 0xf]);
|
||||
}
|
||||
|
||||
fprintf(stream, "]%s",
|
||||
fprintf(stream, "]%s",
|
||||
((given & 0x00200000) != 0) ? "!" : "");
|
||||
}
|
||||
else
|
||||
|
@ -590,7 +590,7 @@ int print_insn_arm(u_int32_t pc, FILE *stream, u_int32_t given)
|
|||
fprintf(stream, "], %s#%d",
|
||||
(((given & 0x00800000) == 0)
|
||||
? "-" : ""), offset);
|
||||
else
|
||||
else
|
||||
fprintf(stream, "]");
|
||||
}
|
||||
else
|
||||
|
@ -604,7 +604,7 @@ int print_insn_arm(u_int32_t pc, FILE *stream, u_int32_t given)
|
|||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 'b':
|
||||
print_address(stream, BDISP (given) * 4 + pc + 8);
|
||||
break;
|
||||
|
@ -802,7 +802,7 @@ int print_insn_arm(u_int32_t pc, FILE *stream, u_int32_t given)
|
|||
}
|
||||
break;
|
||||
|
||||
case '0': case '1': case '2': case '3': case '4':
|
||||
case '0': case '1': case '2': case '3': case '4':
|
||||
case '5': case '6': case '7': case '8': case '9':
|
||||
{
|
||||
int bitstart = *c++ - '0';
|
||||
|
@ -814,44 +814,44 @@ int print_insn_arm(u_int32_t pc, FILE *stream, u_int32_t given)
|
|||
{
|
||||
case '-':
|
||||
c++;
|
||||
|
||||
|
||||
while (*c >= '0' && *c <= '9')
|
||||
bitend = (bitend * 10) + *c++ - '0';
|
||||
|
||||
|
||||
if (!bitend)
|
||||
return -1;
|
||||
|
||||
|
||||
switch (*c)
|
||||
{
|
||||
case 'r':
|
||||
{
|
||||
int32_t reg;
|
||||
|
||||
|
||||
reg = given >> bitstart;
|
||||
reg &= (2 << (bitend - bitstart)) - 1;
|
||||
|
||||
|
||||
fprintf(stream, "%s", arm_regnames[reg]);
|
||||
}
|
||||
break;
|
||||
case 'd':
|
||||
{
|
||||
int32_t reg;
|
||||
|
||||
|
||||
reg = given >> bitstart;
|
||||
reg &= (2 << (bitend - bitstart)) - 1;
|
||||
|
||||
|
||||
fprintf(stream, "%d", reg);
|
||||
}
|
||||
break;
|
||||
case 'x':
|
||||
{
|
||||
int32_t reg;
|
||||
|
||||
|
||||
reg = given >> bitstart;
|
||||
reg &= (2 << (bitend - bitstart)) - 1;
|
||||
|
||||
|
||||
fprintf(stream, "0x%08x", reg);
|
||||
|
||||
|
||||
/* Some SWI instructions have special
|
||||
meanings. */
|
||||
if ((given & 0x0fffffff) == 0x0FF00000)
|
||||
|
@ -863,20 +863,20 @@ int print_insn_arm(u_int32_t pc, FILE *stream, u_int32_t given)
|
|||
case 'X':
|
||||
{
|
||||
int32_t reg;
|
||||
|
||||
|
||||
reg = given >> bitstart;
|
||||
reg &= (2 << (bitend - bitstart)) - 1;
|
||||
|
||||
|
||||
fprintf(stream, "%01x", reg & 0xf);
|
||||
}
|
||||
break;
|
||||
case 'f':
|
||||
{
|
||||
int32_t reg;
|
||||
|
||||
|
||||
reg = given >> bitstart;
|
||||
reg &= (2 << (bitend - bitstart)) - 1;
|
||||
|
||||
|
||||
if (reg > 7)
|
||||
fprintf(stream, "#%s",
|
||||
arm_fp_const[reg & 7]);
|
||||
|
@ -937,7 +937,7 @@ int print_insn_arm(u_int32_t pc, FILE *stream, u_int32_t given)
|
|||
}
|
||||
break;
|
||||
|
||||
|
||||
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ static const char import_prologue[] = "";
|
|||
* Import Function Name String Table
|
||||
*******************************************************************/
|
||||
|
||||
static const char import_name_strtab_prologue[] =
|
||||
static const char import_name_strtab_prologue[] =
|
||||
"\n/*******************************************************************\n"
|
||||
" * Import Function Names\n"
|
||||
" *******************************************************************/\n\n"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* toolchain/nxflat/ldnxflat.c
|
||||
* Convert ELF (or any BFD format) to NXFLAT binary format
|
||||
*
|
||||
* ldnxflat takes a fully resolvable elf binary which was linked with -r
|
||||
* ldnxflat takes a fully resolvable elf binary which was linked with -r
|
||||
* and resolves all references, then generates relocation table entries for
|
||||
* any relocation entries in data sections. This is designed to work with
|
||||
* the options -fpic -msingle-pic-base (and -mno-got or -membedded-pic, but
|
||||
|
@ -42,7 +42,7 @@
|
|||
* (c) 1996, 1997 Dionne & Associates
|
||||
* jeff@ryeham.ee.ryerson.ca
|
||||
*
|
||||
* Relocation added March 1997, Kresten Krab Thorup
|
||||
* Relocation added March 1997, Kresten Krab Thorup
|
||||
* krab@california.daimi.aau.dk
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@ -183,7 +183,7 @@ typedef struct
|
|||
}
|
||||
tc_data;
|
||||
|
||||
/* Version information. This is from an Elf_Internal_Versym structure in a
|
||||
/* Version information. This is from an Elf_Internal_Versym structure in a
|
||||
* SHT_GNU_versym section. It is zero if there is no version information. */
|
||||
|
||||
u_int16_t version;
|
||||
|
@ -692,7 +692,7 @@ static int get_reloc_type(asection *sym_section, segment_info **sym_segment)
|
|||
/* Yes... */
|
||||
|
||||
vdbg("Sym section %s is BSS\n", sym_section->name);
|
||||
|
||||
|
||||
if (sym_segment)
|
||||
{
|
||||
*sym_segment = &bss_info;
|
||||
|
@ -984,7 +984,7 @@ relocate_abs32(arelent *relp, int32_t *target, symvalue sym_value)
|
|||
else
|
||||
{
|
||||
/* Reallocation was successful. Update globals */
|
||||
|
||||
|
||||
nxflat_nrelocs++;
|
||||
nxflat_relocs = relocs;
|
||||
|
||||
|
@ -992,7 +992,7 @@ relocate_abs32(arelent *relp, int32_t *target, symvalue sym_value)
|
|||
|
||||
nxflat_relocs[nxflat_nrelocs-1].r_info =
|
||||
NXFLAT_RELOC(reloc_type, relp->address + got_size);
|
||||
|
||||
|
||||
vdbg("relocs[%d]: type: %d offset: %08x\n",
|
||||
nxflat_nrelocs-1,
|
||||
NXFLAT_RELOC_TYPE(nxflat_relocs[nxflat_nrelocs-1].r_info),
|
||||
|
@ -1305,7 +1305,7 @@ resolve_segment_relocs(bfd *input_bfd, segment_info *inf, asymbol **syms)
|
|||
* constant strings in D-Space. I think we can just ignore
|
||||
* this relocation. The usual assembly language sequence
|
||||
* is like:
|
||||
*
|
||||
*
|
||||
* ldr r0, .L9 <- r0 holds GOT-relative offset to 'n'
|
||||
* add r0, sl, r0 <- Adding SL produces address of 'n'
|
||||
* ...
|
||||
|
@ -1323,7 +1323,7 @@ resolve_segment_relocs(bfd *input_bfd, segment_info *inf, asymbol **syms)
|
|||
*/
|
||||
|
||||
/* Check if symbols lies in I- or D-Space */
|
||||
|
||||
|
||||
reltype = get_reloc_type(rel_section, NULL);
|
||||
if (reltype == NXFLAT_RELOC_TARGET_TEXT)
|
||||
{
|
||||
|
@ -1349,7 +1349,7 @@ resolve_segment_relocs(bfd *input_bfd, segment_info *inf, asymbol **syms)
|
|||
* offset table. This relocation type is used to set the 32-bit
|
||||
* address of global variables. The usual assembly language sequence
|
||||
* is like:
|
||||
*
|
||||
*
|
||||
* ldr r3, .L4 <- r3 holds GOT-relative offset to address of 'n'
|
||||
* ldr r1, [sl,r3] <- r1 holds (relocated) address of 'n'
|
||||
* ...
|
||||
|
@ -1385,9 +1385,9 @@ resolve_segment_relocs(bfd *input_bfd, segment_info *inf, asymbol **syms)
|
|||
|
||||
dbg("Performing GOTPC reloc at addr %08lx [%08lx] to sym '%s' [%08lx]\n",
|
||||
(long)relpp[j]->address, (long)*target, rel_sym->name, (long)sym_value);
|
||||
|
||||
|
||||
/* Check if this is TEXT section relocation */
|
||||
|
||||
|
||||
if ((inf->subsect[i]->flags & SEC_CODE) != 0 &&
|
||||
(inf->subsect[i]->flags & SEC_ALLOC) != 0)
|
||||
{
|
||||
|
@ -1928,7 +1928,7 @@ static void output_got(int fd)
|
|||
/* And output the relocation information associate with the GOT entry */
|
||||
|
||||
relocs[j].r_info = NXFLAT_RELOC(reloc_type, sizeof(u_int32_t) * i);
|
||||
|
||||
|
||||
vdbg("relocs[%d]: type: %d offset: %08x\n",
|
||||
j, NXFLAT_RELOC_TYPE(relocs[j].r_info), NXFLAT_RELOC_OFFSET(relocs[j].r_info));
|
||||
}
|
||||
|
@ -2215,7 +2215,7 @@ int main(int argc, char **argv, char **envp)
|
|||
|
||||
symbol_table = get_symbols(bf, &number_of_symbols);
|
||||
|
||||
/* Find all of the special symbols that we will need in the symbol table that
|
||||
/* Find all of the special symbols that we will need in the symbol table that
|
||||
* we just read. */
|
||||
|
||||
find_special_symbols();
|
||||
|
|
|
@ -517,7 +517,7 @@ static int get_file_token(FILE * in_stream)
|
|||
if (c == EOF)
|
||||
return EOF;
|
||||
|
||||
/* Add the token to the buffer. Copy characters until the buffer is full, or
|
||||
/* Add the token to the buffer. Copy characters until the buffer is full, or
|
||||
* a terminator is encountered. */
|
||||
|
||||
for (i = 0; ((i < 1023) && !ISTERMINATOR(c)); i++, c = getc(in_stream))
|
||||
|
|
|
@ -90,7 +90,7 @@ struct nxflat_hdr_s
|
|||
* and bss regions (bss_end - data_start) as well as the size of the
|
||||
* stack. At run time, this region will also include program arguments
|
||||
* and environement variables.
|
||||
*
|
||||
*
|
||||
* The bss segment is data_end through bss_end.
|
||||
*/
|
||||
|
||||
|
@ -186,7 +186,7 @@ struct nxflat_reloc_s
|
|||
#define NXFLAT_RELOC_TYPE_NUM 2 /* Number of relocation types */
|
||||
|
||||
/****************************************************************************
|
||||
* NXFLAT Imported symbol type
|
||||
* NXFLAT Imported symbol type
|
||||
*
|
||||
* The imported symbols are an array of the following type. The fields
|
||||
* in each element are stored in native machine order.
|
||||
|
|
|
@ -67,7 +67,7 @@
|
|||
/***********************************************************************
|
||||
* Definitions
|
||||
***********************************************************************/
|
||||
|
||||
|
||||
#define NXFLAT_HDR_SIZE sizeof(struct nxflat_hdr_s)
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -456,7 +456,7 @@ static void dump_relocation_entries(FILE * in_stream, struct nxflat_hdr_s *heade
|
|||
}
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
#ifdef RELOCS_IN_NETWORK_ORDER
|
||||
{
|
||||
u_int32_t *ptmp;
|
||||
|
|
|
@ -79,7 +79,7 @@ static const char import_prologue[] = "";
|
|||
* Import Function Name String Table
|
||||
*******************************************************************/
|
||||
|
||||
static const char import_name_strtab_prologue[] =
|
||||
static const char import_name_strtab_prologue[] =
|
||||
"\n/*******************************************************************\n"
|
||||
" * Import Function Names\n"
|
||||
" *******************************************************************/\n\n"
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
*
|
||||
* sstrip is a small utility that removes the contents at the end of an
|
||||
* ELF file that are not part of the program's memory image.
|
||||
*
|
||||
*
|
||||
* Most ELF executables are built with both a program header table and a
|
||||
* section header table. However, only the former is required in order
|
||||
* for the OS to load, link and execute a program. sstrip attempts to
|
||||
|
@ -21,7 +21,7 @@
|
|||
* the file that occur at the end, after the parts to be saved. However,
|
||||
* this almost always includes the section header table, and occasionally
|
||||
* a few random sections that are not used when running a program.
|
||||
*
|
||||
*
|
||||
* It should be noted that the GNU bfd library is (understandably)
|
||||
* dependent on the section header table as an index to the file's
|
||||
* contents. Thus, an executable file that has no section header table
|
||||
|
@ -33,15 +33,15 @@
|
|||
* low-priority item, as executables without a section header table are
|
||||
* rare in the extreme.) This probably also explains why strip doesn't
|
||||
* offer the option to do this.
|
||||
*
|
||||
*
|
||||
* Shared library files may also have their section header table removed.
|
||||
* Such a library will still function; however, it will no longer be
|
||||
* possible for a compiler to link a new program against it.
|
||||
*
|
||||
*
|
||||
* As an added bonus, sstrip also tries to removes trailing zero bytes
|
||||
* from the end of the file. (This normally cannot be done with an
|
||||
* executable that has a section header table.)
|
||||
*
|
||||
*
|
||||
* sstrip is a very simplistic program. It depends upon the common
|
||||
* practice of putting the parts of the file that contribute to the
|
||||
* memory image at the front, and the remaining material at the end. This
|
||||
|
|
|
@ -14,7 +14,7 @@ z80sim
|
|||
|
||||
This is an emulator for the Z80 instruction set. It is based
|
||||
on the instruction set emulator by Marat Fayzullin but has
|
||||
been extended to load Intel hex format files as produced by
|
||||
been extended to load Intel hex format files as produced by
|
||||
the SDCC toolchain.
|
||||
|
||||
Sources and licensing
|
||||
|
|
|
@ -3,7 +3,7 @@ z80sim
|
|||
|
||||
This is an emulator for the Z80 instruction set. It is based
|
||||
on the instruction set emulator by Marat Fayzullin but has
|
||||
been extended to load Intel hex format files as produced by
|
||||
been extended to load Intel hex format files as produced by
|
||||
the SDCC toolchain.
|
||||
|
||||
Sources and licensing
|
||||
|
|
|
@ -8,7 +8,7 @@ CC = /usr/local/bin/sdcc
|
|||
CFLAGS = -mz80 --stack-auto --int-long-reent --float-reent
|
||||
|
||||
LD = /usr/local/bin/link-z80
|
||||
LDFLAGS =
|
||||
LDFLAGS =
|
||||
|
||||
ASMEXT = .asm
|
||||
OBJEXT = .rel
|
||||
|
|
|
@ -53,7 +53,7 @@ hello:
|
|||
start:
|
||||
;ei ; Enable interrrupts
|
||||
ld hl, #hello ; Say hello
|
||||
call print
|
||||
call print
|
||||
|
||||
forever: ; Then stop execution
|
||||
jp forever
|
||||
|
|
|
@ -7,7 +7,7 @@ CC = gcc
|
|||
CFLAGS = -g -Wall -IZ80 -DLSB_FIRST=1 -DDEBUG=1 -DJUMPZ80
|
||||
|
||||
LD = gcc
|
||||
LDFLAGS =
|
||||
LDFLAGS =
|
||||
|
||||
SRCS = main.c Debug.c Z80.c
|
||||
OBJS = $(SRCS:.c=.o)
|
||||
|
|
|
@ -24,7 +24,7 @@ z80_rom.asm
|
|||
|
||||
A board specific version in the configs/<board-name>/src directory can be
|
||||
used by:
|
||||
|
||||
|
||||
1. Define CONFIG_ARCH_HAVEHEAD
|
||||
2. Add the board-specific head file, say <filename>.asm, to
|
||||
configs/<board-name>/src
|
||||
|
|
Loading…
Reference in New Issue