diff options
-rw-r--r-- | ld/ChangeLog | 11 | ||||
-rw-r--r-- | ld/configure.in | 4 | ||||
-rw-r--r-- | ld/ldlang.c | 16 |
3 files changed, 24 insertions, 7 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index d256ad0..888f2ef 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,14 @@ +Sun Nov 3 15:00:03 1991 Per Bothner (bothner at cygnus.com) + + * configure.in: Fixed typo. Also, a fix for hp300bsd. + * ldlang.c (init_os): Compensate for BFD change, + where bfd_make_section now returns NULL for a duplicate + section request, instead of the old section. + +Thu Oct 17 15:27:13 1991 Per Bothner (bothner at cygnus.com) + + * ldver.c: Bump to version 1.91 (consistent with binutils). + Wed Oct 16 12:27:08 1991 Per Bothner (bothner at cygnus.com) * Makefile.in, config.h, ld.h, ldemul.c, ldexp.c, ldexp.h, diff --git a/ld/configure.in b/ld/configure.in index 15f3a6f..6891715 100644 --- a/ld/configure.in +++ b/ld/configure.in @@ -97,9 +97,8 @@ if [ ! -f ${files} ] ; then echo '***' ${srcname} does not support host ${host} exit 1 fi - host_makefile_frag= -if [ -f config/h-${my_host} ] ; then +if [ -f config/mh-${my_host} ] ; then host_makefile_frag=config/mh-${my_host} fi @@ -125,6 +124,7 @@ sun) m68k) case ${target_vendor} in sony) my_target=news;; + hp) my_target=hp300bsd;; *) echo "Unknown m68k target vendor:" ${target_vendor} exit 1 diff --git a/ld/ldlang.c b/ld/ldlang.c index b7596a0..c7ceba2 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -496,7 +496,9 @@ DEFUN(init_os,(s), (section_userdata_type *) ldmalloc((bfd_size_type)(sizeof(section_userdata_type))); - s->bfd_section = bfd_make_section(output_bfd, s->name); + s->bfd_section = bfd_get_section_by_name(output_bfd, s->name); + if (s->bfd_section == (asection *)NULL) + s->bfd_section = bfd_make_section(output_bfd, s->name); if (s->bfd_section == (asection *)NULL) { info("%P%F output format %s cannot represent section called %s\n", output_bfd->xvec->name, @@ -698,6 +700,14 @@ DEFUN(ldlang_open_output,(statement), case lang_output_statement_enum: output_bfd = open_output(statement->output_statement.name); ldemul_set_output_arch(); + if (config.magic_demand_paged && !config.relocateable_output) + output_bfd->flags |= ~D_PAGED; + else + output_bfd->flags &= ~D_PAGED; + if (config.text_read_only) + output_bfd->flags |= WP_TEXT; + else + output_bfd->flags &= ~WP_TEXT; break; case lang_target_statement_enum: @@ -2333,8 +2343,6 @@ DEFUN(lang_abs_symbol_at_beginning_of,(section, name), CONST char *name) { if (ldsym_undefined(name)) { - extern bfd *output_bfd; - extern asymbol *create_symbol(); asection *s = bfd_get_section_by_name(output_bfd, section); asymbol *def = create_symbol(name, BSF_GLOBAL | BSF_EXPORT | @@ -2361,8 +2369,6 @@ DEFUN(lang_abs_symbol_at_end_of,(section, name), CONST char *name) { if (ldsym_undefined(name)){ - extern bfd *output_bfd; - extern asymbol *create_symbol(); asection *s = bfd_get_section_by_name(output_bfd, section); /* Add a symbol called _end */ asymbol *def = create_symbol(name, |