From 249172c3f2d740b8bd9265a58a3a83dfc9228d93 Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Wed, 5 Dec 2001 13:34:46 +0000 Subject: [PATCH] Formatting and misc cleanup for AIX. --- ld/ChangeLog | 15 +++ ld/emulparams/aixppc.sh | 3 +- ld/emulparams/aixrs6.sh | 3 +- ld/emulparams/ppcmacos.sh | 2 - ld/emultempl/aix.em | 240 ++++++++++++++++++++++------------------------ 5 files changed, 133 insertions(+), 130 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 0df214d..9696ca9 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,18 @@ +2001-12-04 Tom Rix + + * emultempl/aix.em (choose_target): Change default target to + OUTPUT_FORMAT for ppcmacos. Add braces to remove compiler + warning. + (gld*_read_file): Fix typo. + (change_symbol_mode): Add prototype. + (is_syscall): Same. + + * emulparams/aixppc.sh (SYSCALL_MASK, SYMBOL_MODE_MASK): Delete. + * emulparams/aixrs6.sh : Same. + * emulparams/ppcmacos.sh : Same. + * emulparams/aixppc64.sh : Delete file. + * emultempl/aix.em : Formatting changes. + 2001-12-04 Hans-Peter Nilsson * emulparams/criself.sh (NO_SMALL_DATA): Set, to yes. diff --git a/ld/emulparams/aixppc.sh b/ld/emulparams/aixppc.sh index b8abe2b..820ca4d 100644 --- a/ld/emulparams/aixppc.sh +++ b/ld/emulparams/aixppc.sh @@ -2,5 +2,4 @@ TEMPLATE_NAME=aix SCRIPT_NAME=aix OUTPUT_FORMAT="aixcoff-rs6000" ARCH=powerpc -SYSCALL_MASK=0x77 -SYMBOL_MODE_MASK=0x0d + diff --git a/ld/emulparams/aixrs6.sh b/ld/emulparams/aixrs6.sh index 472c42d..ba0766a 100644 --- a/ld/emulparams/aixrs6.sh +++ b/ld/emulparams/aixrs6.sh @@ -2,5 +2,4 @@ TEMPLATE_NAME=aix SCRIPT_NAME=aix OUTPUT_FORMAT="aixcoff-rs6000" ARCH=rs6000 -SYSCALL_MASK=0x77 -SYMBOL_MODE_MASK=0x0d + diff --git a/ld/emulparams/ppcmacos.sh b/ld/emulparams/ppcmacos.sh index 7c67633..b6b800c 100644 --- a/ld/emulparams/ppcmacos.sh +++ b/ld/emulparams/ppcmacos.sh @@ -2,5 +2,3 @@ TEMPLATE_NAME=aix SCRIPT_NAME=aix OUTPUT_FORMAT="xcoff-powermac" ARCH=powerpc -SYSCALL_MASK=0x77 -SYMBOL_MODE_MASK=0x0d diff --git a/ld/emultempl/aix.em b/ld/emultempl/aix.em index 989e5b2..1bc643b 100644 --- a/ld/emultempl/aix.em +++ b/ld/emultempl/aix.em @@ -57,16 +57,18 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ static void gld${EMULATION_NAME}_before_parse PARAMS ((void)); static int gld${EMULATION_NAME}_parse_args PARAMS ((int, char **)); static void gld${EMULATION_NAME}_after_open PARAMS ((void)); -static char * choose_target PARAMS ((int, char **)); +static char *choose_target PARAMS ((int, char **)); static void gld${EMULATION_NAME}_before_allocation PARAMS ((void)); static void gld${EMULATION_NAME}_read_file PARAMS ((const char *, boolean)); static void gld${EMULATION_NAME}_free PARAMS ((PTR)); -static void gld${EMULATION_NAME}_find_relocs - PARAMS ((lang_statement_union_type *)); +static void gld${EMULATION_NAME}_find_relocs +PARAMS ((lang_statement_union_type *)); static void gld${EMULATION_NAME}_find_exp_assignment PARAMS ((etree_type *)); static char *gld${EMULATION_NAME}_get_script PARAMS ((int *isfile)); static boolean gld${EMULATION_NAME}_unrecognized_file PARAMS ((lang_input_statement_type *)); +static int is_syscall PARAMS ((char *, unsigned int *)); +static int change_symbol_mode PARAMS ((char *)); /* The file alignment required for each section. */ static unsigned long file_align; @@ -167,7 +169,8 @@ gld${EMULATION_NAME}_parse_args (argc, argv) bfd_signed_vma val; char *end; - enum { + enum + { OPTION_IGNORE = 300, OPTION_AUTOIMP, OPTION_ERNOTOK, @@ -296,9 +299,7 @@ gld${EMULATION_NAME}_parse_args (argc, argv) changing it to = lets us treat it as a getopt option. */ indx = optind; if (indx == 0) - { - indx = 1; - } + indx = 1; if (indx < argc && strncmp (argv[indx], "-b", 2) == 0) { @@ -344,8 +345,7 @@ gld${EMULATION_NAME}_parse_args (argc, argv) case 'H': val = strtoul (optarg, &end, 0); - if (*end != '\0' - || (val & (val - 1)) != 0) + if (*end != '\0' || (val & (val - 1)) != 0) einfo ("%P: warning: ignoring invalid -H number %s\n", optarg); else file_align = val; @@ -399,9 +399,7 @@ gld${EMULATION_NAME}_parse_args (argc, argv) *t++ = 0; if (0 != strlen (i)) - { - link_info.init_function = i; - } + link_info.init_function = i; f = t; while (*t && ':' != *t) @@ -409,12 +407,10 @@ gld${EMULATION_NAME}_parse_args (argc, argv) *t = 0; if (0 != strlen (f)) - { - link_info.fini_function = f; - } + link_info.fini_function = f; } - break; - + break; + case OPTION_AUTOIMP: link_info.static_link = false; break; @@ -461,7 +457,8 @@ gld${EMULATION_NAME}_parse_args (argc, argv) case OPTION_MAXSTACK: val = strtoull (optarg, &end, 0); if (*end != '\0') - einfo ("%P: warning: ignoring invalid -bmaxstack number %s\n", optarg); + einfo ("%P: warning: ignoring invalid -bmaxstack number %s\n", + optarg); else maxstack = val; break; @@ -505,7 +502,7 @@ gld${EMULATION_NAME}_parse_args (argc, argv) exp_intop (0xfff))); t = exp_binop ('&', exp_binop ('+', t, exp_intop (31)), - exp_intop (~ (bfd_vma) 31)); + exp_intop (~(bfd_vma) 31)); lang_section_start (".data", t); } break; @@ -526,7 +523,7 @@ gld${EMULATION_NAME}_parse_args (argc, argv) exp_nameop (SIZEOF_HEADERS, NULL)); t = exp_binop ('&', exp_binop ('+', t, exp_intop (31)), - exp_intop (~ (bfd_vma) 31)); + exp_intop (~(bfd_vma) 31)); lang_section_start (".text", t); } break; @@ -621,8 +618,8 @@ gld${EMULATION_NAME}_after_open () bfd_size_type size; /* If the symbol is defined, we may have been invoked from - collect, and the sets may already have been built, so we do - not do anything. */ + collect, and the sets may already have been built, so we do + not do anything. */ if (p->h->type == bfd_link_hash_defined || p->h->type == bfd_link_hash_defweak) continue; @@ -634,7 +631,7 @@ gld${EMULATION_NAME}_after_open () } size = (p->count + 2) * 4; - if (! bfd_xcoff_link_record_set (output_bfd, &link_info, p->h, size)) + if (!bfd_xcoff_link_record_set (output_bfd, &link_info, p->h, size)) einfo ("%F%P: bfd_xcoff_link_record_set failed: %E\n"); } } @@ -661,7 +658,7 @@ gld${EMULATION_NAME}_before_allocation () h = bfd_link_hash_lookup (link_info.hash, el->name, false, false, false); if (h == NULL) einfo ("%P%F: bfd_link_hash_lookup of export symbol failed: %E\n"); - if (! bfd_xcoff_export_symbol (output_bfd, &link_info, h)) + if (!bfd_xcoff_export_symbol (output_bfd, &link_info, h)) einfo ("%P%F: bfd_xcoff_export_symbol failed: %E\n"); } @@ -699,14 +696,13 @@ gld${EMULATION_NAME}_before_allocation () } /* Let the XCOFF backend set up the .loader section. */ - if (! bfd_xcoff_size_dynamic_sections (output_bfd, &link_info, libpath, - entry_symbol, file_align, - maxstack, maxdata, - gc && ! unix_ld ? true : false, - modtype, - textro ? true : false, - unix_ld, - special_sections)) + if (!bfd_xcoff_size_dynamic_sections (output_bfd, &link_info, libpath, + entry_symbol, file_align, + maxstack, maxdata, + gc && !unix_ld ? true : false, + modtype, + textro ? true : false, + unix_ld, special_sections)) einfo ("%P%F: failed to set dynamic section sizes: %E\n"); /* Look through the special sections, and put them in the right @@ -725,21 +721,19 @@ gld${EMULATION_NAME}_before_allocation () continue; /* Remove this section from the list of the output section. - This assumes we know what the script looks like. */ + This assumes we know what the script looks like. */ is = NULL; os = lang_output_section_find (sec->output_section->name); - if (os == NULL) { + if (os == NULL) einfo ("%P%F: can't find output section %s\n", sec->output_section->name); - } for (pls = &os->children.head; *pls != NULL; pls = &(*pls)->header.next) { - - if ((*pls)->header.type == lang_input_section_enum && - (*pls)->input_section.section == sec) + if ((*pls)->header.type == lang_input_section_enum + && (*pls)->input_section.section == sec) { - is = (lang_input_section_type *) *pls; + is = (lang_input_section_type *) * pls; *pls = (*pls)->header.next; break; } @@ -749,15 +743,13 @@ gld${EMULATION_NAME}_before_allocation () lang_statement_union_type **pwls; for (pwls = &(*pls)->wild_statement.children.head; - *pwls != NULL; - pwls = &(*pwls)->header.next) + *pwls != NULL; pwls = &(*pwls)->header.next) { - if ((*pwls)->header.type == lang_input_section_enum && - (*pwls)->input_section.section == sec) + if ((*pwls)->header.type == lang_input_section_enum + && (*pwls)->input_section.section == sec) { - - is = (lang_input_section_type *) *pwls; + is = (lang_input_section_type *) * pwls; *pwls = (*pwls)->header.next; break; } @@ -778,7 +770,7 @@ gld${EMULATION_NAME}_before_allocation () switch (i) { - default: /* to avoid warnings */ + default: /* to avoid warnings */ case XCOFF_SPECIAL_SECTION_TEXT: /* _text */ oname = ".text"; @@ -836,17 +828,16 @@ choose_target (argc, argv) int i, j, jmax; static char *from_outside; static char *from_inside; - static char *argv_to_target[][2] = - { - NULL, "aixcoff-rs6000", - "-b32", "aixcoff-rs6000", - "-b64", "aixcoff64-rs6000", - }; + static char *argv_to_target[][2] = { + {NULL, "${OUTPUT_FORMAT}"}, + {"-b32", "aixcoff-rs6000"}, + {"-b64", "aixcoff64-rs6000"}, + }; jmax = 3; from_outside = getenv (TARGET_ENVIRON); - if (from_outside != (char *)NULL) + if (from_outside != (char *) NULL) return from_outside; /* Set to default. */ @@ -859,32 +850,32 @@ choose_target (argc, argv) from_inside = argv_to_target[j][1]; } } - + return from_inside; } - -static int change_symbol_mode (char *input) +/* Returns + 1 : state changed + 0 : no change */ +static int +change_symbol_mode (input) + char *input; { - /* - * 1 : state changed - * 0 : no change - */ - char *symbol_mode_string[] = { - "# 32", /* 0x01 */ - "# 64", /* 0x02 */ - "# no32", /* 0x04 */ - "# no64", /* 0x08 */ + "# 32", /* 0x01 */ + "# 64", /* 0x02 */ + "# no32", /* 0x04 */ + "# no64", /* 0x08 */ NULL, }; + unsigned int bit; char *string; - for (bit = 0; ; bit++) + for (bit = 0;; bit++) { string = symbol_mode_string[bit]; - if (NULL == string) + if (string == NULL) return 0; if (0 == strcmp (input, string)) @@ -897,13 +888,15 @@ static int change_symbol_mode (char *input) return 0; } -static int is_syscall(char *input, unsigned int *flag) +/* Returns + 1 : yes + 0 : ignore + -1 : error, try something else */ +static int +is_syscall (input, flag) + char *input; + unsigned int *flag; { - /* - * 1 : yes - * 0 : ignore - * -1 : error, try something else - */ unsigned int bit; char *string; @@ -924,22 +917,25 @@ static int is_syscall(char *input, unsigned int *flag) *flag = 0; - for (bit = 0; ;bit++) { - - string = s[bit].syscall_string; - if (NULL == string) { - return -1; - } + for (bit = 0;; bit++) + { + string = s[bit].syscall_string; + if (string == NULL) + return -1; - if (0 == strcmp(input, string)) { - if (1 << bit & syscall_mask) { - *flag = s[bit].flag; - return 1; - } else { - return 0; - } + if (0 == strcmp (input, string)) + { + if (1 << bit & syscall_mask) + { + *flag = s[bit].flag; + return 1; + } + else + { + return 0; + } + } } - } /* should not be here */ return -1; } @@ -1012,7 +1008,7 @@ gld${EMULATION_NAME}_read_file (filename, import) || *s == '*' || change_symbol_mode (s) || (*s == '#' && s[1] == ' ') - || (! import && *s == '#' && s[1] == '!')) + || (!import && *s == '#' && s[1] == '!')) { obstack_free (o, obstack_base (o)); continue; @@ -1042,8 +1038,7 @@ gld${EMULATION_NAME}_read_file (filename, import) keep = true; imppath = s; file = NULL; - while (! ISSPACE (*s) - && *s != '(' && *s != '\0') + while (!ISSPACE (*s) && *s != '(' && *s != '\0') { if (*s == '/') file = s + 1; @@ -1099,7 +1094,7 @@ gld${EMULATION_NAME}_read_file (filename, import) syscall_flag = 0; address = (bfd_vma) -1; - while (! ISSPACE (*s) && *s != '\0') + while (!ISSPACE (*s) && *s != '\0') ++s; if (*s != '\0') { @@ -1111,7 +1106,7 @@ gld${EMULATION_NAME}_read_file (filename, import) ++s; se = s; - while (! ISSPACE (*se) && *se != '\0') + while (!ISSPACE (*se) && *se != '\0') ++se; if (*se != '\0') { @@ -1128,25 +1123,23 @@ gld${EMULATION_NAME}_read_file (filename, import) int status; char *end; - status = is_syscall(s, &syscall_flag); + status = is_syscall (s, &syscall_flag); - if (0 > status) { - /* not a system call, check for address */ - address = strtoul (s, &end, 0); - - /* not a system call, check for address */ - address = strtoul (s, &end, 0); - if (*end != '\0') - { - einfo ("%s:%d: warning: syntax error in import/export file\n", - filename, lineno); - - } - } + if (0 > status) + { + /* not a system call, check for address */ + address = strtoul (s, &end, 0); + if (*end != '\0') + { + einfo ("%s:%d: warning: syntax error in import/export file\n", + filename, lineno); + + } + } } } - if (! import) + if (!import) { struct export_symbol_list *n; @@ -1168,9 +1161,9 @@ gld${EMULATION_NAME}_read_file (filename, import) } else { - if (! bfd_xcoff_import_symbol (output_bfd, &link_info, h, - address, imppath, impfile, - impmember, syscall_flag)) + if (!bfd_xcoff_import_symbol (output_bfd, &link_info, h, + address, imppath, impfile, + impmember, syscall_flag)) einfo ("%X%s:%d: failed to import symbol %s: %E\n", filename, lineno, symname); } @@ -1186,7 +1179,7 @@ gld${EMULATION_NAME}_read_file (filename, import) obstack_free (o, obstack_base (o)); } - if (! keep) + if (!keep) { obstack_free (o, NULL); free (o); @@ -1217,7 +1210,7 @@ gld${EMULATION_NAME}_find_relocs (s) rs = &s->reloc_statement; if (rs->name == NULL) einfo ("%F%P: only relocations against symbols are permitted\n"); - if (! bfd_xcoff_link_count_reloc (output_bfd, &link_info, rs->name)) + if (!bfd_xcoff_link_count_reloc (output_bfd, &link_info, rs->name)) einfo ("%F%P: bfd_xcoff_link_count_reloc failed: %E\n"); } @@ -1244,8 +1237,8 @@ gld${EMULATION_NAME}_find_exp_assignment (exp) case etree_assign: if (strcmp (exp->assign.dst, ".") != 0) { - if (! bfd_xcoff_record_link_assignment (output_bfd, &link_info, - exp->assign.dst)) + if (!bfd_xcoff_record_link_assignment (output_bfd, &link_info, + exp->assign.dst)) einfo ("%P%F: failed to record assignment to %s: %E\n", exp->assign.dst); } @@ -1326,8 +1319,7 @@ fi cat >>e${EMULATION_NAME}.c <