X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=ld%2Femultempl%2Fgld960c.em;h=1999ea89a85c43c9e88bb4b34f90f8d40ef6a97e;hb=92b93329b58c744ea269b50f6278ed99416941a9;hp=662afce93d114c3edf78a30d3eca48a4cf185403;hpb=fa803dc60f0bf01297674c41d001798e18ade4dc;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/emultempl/gld960c.em b/ld/emultempl/gld960c.em index 662afce93d..1999ea89a8 100644 --- a/ld/emultempl/gld960c.em +++ b/ld/emultempl/gld960c.em @@ -1,83 +1,60 @@ # This shell script emits a C file. -*- C -*- # It does some substitutions. -cat >e${EMULATION_NAME}.c < -#include "bfd.h" #include "sysdep.h" +#include "bfd.h" #include "libiberty.h" +#include "safe-ctype.h" #include "bfdlink.h" #include "ld.h" -#include "ldemul.h" -#include "ldfile.h" #include "ldmisc.h" #include "ldmain.h" -#ifdef GNU960 - -static void -gld960_before_parse() -{ - static char *env_variables[] = { "G960LIB", "G960BASE", 0 }; - char **p; - char *env ; - - for ( p = env_variables; *p; p++ ){ - env = (char *) getenv(*p); - if (env) { - ldfile_add_library_path (concat (env, - "/lib/libcoff", - (const char *) NULL), - false); - } - } - ldfile_output_architecture = bfd_arch_i960; -} - -#else /* not GNU960 */ +#include "ldexp.h" +#include "ldlang.h" +#include "ldfile.h" +#include "ldemul.h" -static void gld960_before_parse() +static void gld960_before_parse (void) { char *env ; env = getenv("G960LIB"); if (env) { - ldfile_add_library_path(env, false); + ldfile_add_library_path(env, FALSE); } env = getenv("G960BASE"); if (env) ldfile_add_library_path (concat (env, "/lib", (const char *) NULL), - false); + FALSE); ldfile_output_architecture = bfd_arch_i960; } -#endif /* GNU960 */ - - static void -gld960_set_output_arch() +gld960_set_output_arch (void) { if (ldfile_output_machine_name != NULL && *ldfile_output_machine_name != '\0') @@ -86,9 +63,8 @@ gld960_set_output_arch() s = concat ("i960:", ldfile_output_machine_name, (char *) NULL); for (s1 = s; *s1 != '\0'; s1++) - if (isupper ((unsigned char) *s1)) - *s1 = tolower ((unsigned char) *s1); - ldfile_set_output_arch (s); + *s1 = TOLOWER (*s1); + ldfile_set_output_arch (s, bfd_arch_unknown); free (s); } @@ -96,15 +72,8 @@ gld960_set_output_arch() } static char * -gld960_choose_target() +gld960_choose_target (int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) { -#ifdef GNU960 - - output_filename = "b.out"; - return bfd_make_targ_name(BFD_BOUT_FORMAT, 0); - -#else - char *from_outside = getenv(TARGET_ENVIRON); output_filename = "b.out"; @@ -112,13 +81,10 @@ gld960_choose_target() return from_outside; return "coff-Intel-little"; - -#endif } static char * -gld960_get_script(isfile) - int *isfile; +gld960_get_script (int *isfile) EOF if test -n "$COMPILE_IN" @@ -126,39 +92,36 @@ then # Scripts compiled in. # sed commands to quote an ld script as a C string. -sc='s/["\\]/\\&/g -s/$/\\n\\/ -1s/^/"/ -$s/$/n"/ -' - -cat >>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocatable) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c else # Scripts read from the filesystem. -cat >>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <