diff --git a/ld/ChangeLog b/ld/ChangeLog index 67dde5f757..2bf4875464 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,33 @@ +Thu Sep 30 17:00:36 1993 Rob Savoye (rob@darkstar.cygnus.com) + + * ldlang.c (lang_add_input_file): If it's a library brought in by + INPUT(), then change the file type to lang_input_file_is_l_enum. + * ldgram.y: In input_list, change lang_input_file_is_file_enum to + lang_input_file_is_search_file_enum so objects brought in using + INPUT() do a path lookup. + +Tue Sep 28 13:31:23 1993 Stan Shebs (shebs@rtl.cygnus.com) + + * configure.in: Change Lynx ld_target to be {i386,m68k}-lynx + instead of {i386,m68k}-coff. + * Makefile.in (em_i386lynx.c, em_m68klynx.c): New targets. + * config/i386-lynx.mt: New file. + * config/m68k-lynx.mt: New file. + * emulparams/i386lynx.sh: New file. + * emulparams/m68klynx.sh: New file. + + * scripttempl/i386coff.sc: Make ENTRY get its value from ${ENTRY}, + but defaulting to _start. + + * ldemul.c, ldfile.c, ldlang.c, ldmain.c, ldmisc.c, ldmisc.h, + ldsym.c, ldwarn.c: Rename info to info_msg, to avoid conflict with + LynxOS libc. + +Thu Sep 23 14:51:03 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/solaris2.mh: New file. Define HOSTING_CRT0 and + HOSTING_LIBS for testing. + Fri Sep 17 17:52:24 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) Finish up support for i386-sysv4 (without shared libraries): diff --git a/ld/ldlang.c b/ld/ldlang.c index b8f6aaaf5d..a37f3916cf 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -1,5 +1,5 @@ /* Linker command language support. - Copyright 1991, 1992 Free Software Foundation, Inc. + Copyright 1991, 1992, 1993 Free Software Foundation, Inc. This file is part of GLD, the Gnu Linker. @@ -33,10 +33,6 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "ldindr.h" #include "ldctor.h" -#define BYTE_SIZE (1) -#define SHORT_SIZE (2) -#define LONG_SIZE (4) - /* FORWARDS */ static void print_statements PARAMS ((void)); static void print_statement PARAMS ((lang_statement_union_type *, @@ -328,6 +324,13 @@ lang_add_input_file (name, file_type, target) { /* Look it up or build a new one */ lang_has_input_file = true; + + if (name) { + if ((*(name+strlen(name)-1) == '.') && (*(name+strlen(name)) == 'a')) { + file_type=lang_input_file_is_l_enum; + } + } + #if 0 lang_input_statement_type *p; @@ -353,10 +356,10 @@ lang_add_keepsyms_file (filename) { extern strip_symbols_type strip_symbols; if (keepsyms_file != 0) - info ("%X%P: error: duplicated keep-symbols-file value\n"); + info_msg ("%X%P: error: duplicated keep-symbols-file value\n"); keepsyms_file = filename; if (strip_symbols != STRIP_NONE) - info ("%P: `-keep-only-symbols-file' overrides `-s' and `-S'\n"); + info_msg ("%P: `-keep-only-symbols-file' overrides `-s' and `-S'\n"); strip_symbols = STRIP_SOME; } @@ -1194,6 +1197,8 @@ print_symbol (q) fprintf (config.map_file, " "); print_address (outside_symbol_address (q)); fprintf (config.map_file, " %s", q->name ? q->name : " "); + if (q->flags & BSF_WEAK) + fprintf (config.map_file, " *weak*"); print_nl (); } @@ -1255,7 +1260,8 @@ print_input_section (in) { asymbol *q = *p; - if (bfd_get_section (q) == i && q->flags & BSF_GLOBAL) + if (bfd_get_section (q) == i + && (q->flags & (BSF_GLOBAL | BSF_WEAK)) != 0) { print_symbol (q); } @@ -2029,7 +2035,7 @@ lang_check () else { - info ("%P: warning: %s architecture of input file `%B' is incompatible with %s output\n", + info_msg ("%P: warning: %s architecture of input file `%B' is incompatible with %s output\n", bfd_printable_name (input_bfd), input_bfd, bfd_printable_name (output_bfd)); @@ -2210,7 +2216,7 @@ lang_place_orphans () if (default_common_section == (lang_output_section_statement_type *) NULL) { - info ("%P: no [COMMON] command, defaulting to .bss\n"); + info_msg ("%P: no [COMMON] command, defaulting to .bss\n"); default_common_section = lang_output_section_statement_lookup (".bss");