* 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.
This commit is contained in:
Rob Savoye
1993-10-01 01:28:55 +00:00
parent 3d8536f365
commit a4aeaacf69
2 changed files with 46 additions and 10 deletions

View File

@ -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) Fri Sep 17 17:52:24 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
Finish up support for i386-sysv4 (without shared libraries): Finish up support for i386-sysv4 (without shared libraries):

View File

@ -1,5 +1,5 @@
/* Linker command language support. /* 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. 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 "ldindr.h"
#include "ldctor.h" #include "ldctor.h"
#define BYTE_SIZE (1)
#define SHORT_SIZE (2)
#define LONG_SIZE (4)
/* FORWARDS */ /* FORWARDS */
static void print_statements PARAMS ((void)); static void print_statements PARAMS ((void));
static void print_statement PARAMS ((lang_statement_union_type *, 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 */ /* Look it up or build a new one */
lang_has_input_file = true; 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 #if 0
lang_input_statement_type *p; lang_input_statement_type *p;
@ -353,10 +356,10 @@ lang_add_keepsyms_file (filename)
{ {
extern strip_symbols_type strip_symbols; extern strip_symbols_type strip_symbols;
if (keepsyms_file != 0) 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; keepsyms_file = filename;
if (strip_symbols != STRIP_NONE) 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; strip_symbols = STRIP_SOME;
} }
@ -1194,6 +1197,8 @@ print_symbol (q)
fprintf (config.map_file, " "); fprintf (config.map_file, " ");
print_address (outside_symbol_address (q)); print_address (outside_symbol_address (q));
fprintf (config.map_file, " %s", q->name ? q->name : " "); fprintf (config.map_file, " %s", q->name ? q->name : " ");
if (q->flags & BSF_WEAK)
fprintf (config.map_file, " *weak*");
print_nl (); print_nl ();
} }
@ -1255,7 +1260,8 @@ print_input_section (in)
{ {
asymbol *q = *p; 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); print_symbol (q);
} }
@ -2029,7 +2035,7 @@ lang_check ()
else 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 (input_bfd), input_bfd,
bfd_printable_name (output_bfd)); bfd_printable_name (output_bfd));
@ -2210,7 +2216,7 @@ lang_place_orphans ()
if (default_common_section == if (default_common_section ==
(lang_output_section_statement_type *) NULL) (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 = default_common_section =
lang_output_section_statement_lookup (".bss"); lang_output_section_statement_lookup (".bss");